Example #1
0
        public async Task Value_display_and_update_are_in_right_order()
        {
            var kernel = CreateKernel();

            await kernel.SendAsync(new SubmitCode("var d = display(b(\"hello\")); d.Update(b(\"world\"));"));

            var formatted =
                KernelEvents
                .OrderBy(e => e.Timestamp)
                .ValuesOnly()
                .OfType <ValueProduced>()
                .SelectMany(v => v.FormattedValues).ToList();

            var firstValue = formatted.Select((v, i) => new { v, i }).First(e => e.v.MimeType == "text/html" &&
                                                                            e.v.Value.ToString()
                                                                            .Contains("<b>hello</b>")).i;

            var updatedValue = formatted.Select((v, i) => new { v, i }).First(e => e.v.MimeType == "text/html" &&
                                                                              e.v.Value.ToString()
                                                                              .Contains("<b>world</b>")).i;

            updatedValue
            .Should()
            .BeGreaterOrEqualTo(firstValue);
        }
Example #2
0
        public async Task Displayed_value_can_be_updated(Language language)
        {
            var kernel = CreateKernel(language);

            var submission = language switch
            {
                Language.CSharp => "var d = display(b(\"hello\")); d.Update(b(\"world\"));",
                Language.FSharp => "let d = display(b.innerHTML(\"hello\"))\nd.Update(b.innerHTML(\"world\"))",
            };

            await kernel.SendAsync(new SubmitCode(submission));

            KernelEvents
            .OrderBy(e => e.Timestamp)
            .ValuesOnly()
            .OfType <DisplayedValueProduced>()
            .SelectMany(v => v.FormattedValues)
            .Should()
            .ContainSingle(v =>
                           v.MimeType == "text/html" &&
                           v.Value.ToString().Contains("<b>hello</b>"));


            KernelEvents
            .OrderBy(e => e.Timestamp)
            .ValuesOnly()
            .OfType <DisplayedValueUpdated>()
            .SelectMany(v => v.FormattedValues)
            .Should()
            .ContainSingle(v =>
                           v.MimeType == "text/html" &&
                           v.Value.ToString().Contains("<b>world</b>"));
        }
Example #3
0
        public async Task Displayed_value_can_be_updated()
        {
            var kernel = CreateKernel();

            await kernel.SendAsync(new SubmitCode("var d = display(b(\"hello\")); d.Update(b(\"world\"));"));


            KernelEvents
            .OrderBy(e => e.Timestamp)
            .ValuesOnly()
            .OfType <DisplayedValueProduced>()
            .SelectMany(v => v.FormattedValues)
            .Should()
            .ContainSingle(v =>
                           v.MimeType == "text/html" &&
                           v.Value.ToString().Contains("<b>hello</b>"));


            KernelEvents
            .OrderBy(e => e.Timestamp)
            .ValuesOnly()
            .OfType <DisplayedValueUpdated>()
            .SelectMany(v => v.FormattedValues)
            .Should()
            .ContainSingle(v =>
                           v.MimeType == "text/html" &&
                           v.Value.ToString().Contains("<b>world</b>"));
        }
Example #4
0
        public async Task Value_display_and_update_are_in_right_order()
        {
            var kernel = CreateKernel();

            await kernel.SendAsync(new SubmitCode("var d = display(b(\"hello\")); d.Update(b(\"world\"));"));

            var valueEvents =
                KernelEvents
                .OrderBy(e => e.Timestamp)
                .Where(e => e.Value is DisplayedValueProduced || e.Value is DisplayedValueUpdated)
                .Select(e => e.Value)
                .ToList();

            valueEvents.First().Should().BeOfType <DisplayedValueProduced>();
            valueEvents.Last().Should().BeOfType <DisplayedValueUpdated>();
        }
Example #5
0
        public async Task Value_display_and_update_are_in_right_order(Language language)
        {
            var kernel = CreateKernel(language);

            var submission = language switch
            {
                Language.CSharp => "var d = display(b(\"hello\")); d.Update(b(\"world\"));",
                Language.FSharp => "let d = display(b.innerHTML(\"hello\"))\nd.Update(b.innerHTML(\"world\"))",
            };

            await kernel.SendAsync(new SubmitCode(submission));

            var valueEvents =
                KernelEvents
                .OrderBy(e => e.Timestamp)
                .Where(e => e.Value is DisplayedValueProduced || e.Value is DisplayedValueUpdated)
                .Select(e => e.Value)
                .ToList();

            valueEvents.First().Should().BeOfType <DisplayedValueProduced>();
            valueEvents.Last().Should().BeOfType <DisplayedValueUpdated>();
        }