Ejemplo n.º 1
0
        public async Task TwoWay_Maps_None_Generic_List()
        {
            var dataContext = new VmWithList();

            dataContext.List.Add(888);

            var test = new TestInContextAsync()
            {
                Bind = (win) => HtmlBinding.Bind(win, dataContext, JavascriptBindingMode.TwoWay),
                Test = async(mb) =>
                {
                    var js = mb.JsRootObject;

                    var col = await GetCollectionAttributeAsync(js, "List");

                    col.GetArrayLength().Should().Be(1);

                    var res = GetAttribute(js, "List");
                    await CallAsync(res, "push", _WebView.Factory.CreateString("newvalue"));

                    col = await GetCollectionAttributeAsync(js, "List");

                    col.GetArrayLength().Should().Be(2);

                    await DoSafeAsyncUI(() =>
                    {
                        dataContext.List.Should().HaveCount(2);
                        dataContext.List[1].Should().Be("newvalue");
                    });
                }
            };

            await RunAsync(test);
        }
Ejemplo n.º 2
0
        public async Task TwoWay_Maps_Decimal_Collection()
        {
            var dataContext = new VmWithList <decimal>();

            var test = new TestInContextAsync()
            {
                Bind = (win) => HtmlBinding.Bind(win, dataContext, JavascriptBindingMode.TwoWay),
                Test = async(mb) =>
                {
                    var js = mb.JsRootObject;

                    var col = GetSafe(() => GetCollectionAttribute(js, "List"));
                    col.GetArrayLength().Should().Be(0);

                    CheckDecimalCollection(col, dataContext.List);

                    await DoSafeAsyncUI(() =>
                    {
                        dataContext.List.Add(3);
                    });

                    col = await GetCollectionAttributeAsync(js, "List");

                    CheckDecimalCollection(col, dataContext.List);

                    await DoSafeAsyncUI(() =>
                    {
                        dataContext.List.Add(10.5m);
                        dataContext.List.Add(126);
                    });

                    col = await GetCollectionAttributeAsync(js, "List");

                    CheckDecimalCollection(col, dataContext.List);

                    var comp = new List <decimal>(dataContext.List)
                    {
                        0.55m
                    };

                    var res = GetAttribute(js, "List");
                    await CallAsync(res, "push", _WebView.Factory.CreateDouble(0.55));

                    col = await GetCollectionAttributeAsync(js, "List");

                    await DoSafeAsyncUI(() => comp.Should().Equal(dataContext.List));

                    CheckDecimalCollection(col, dataContext.List);
                }
            };

            await RunAsync(test);
        }
Ejemplo n.º 3
0
        public async Task TwoWay_Maps_String_Collection()
        {
            var dataContext = new VmWithList <string>();

            var test = new TestInContextAsync()
            {
                Bind = (win) => HtmlBinding.Bind(win, dataContext, JavascriptBindingMode.TwoWay),
                Test = async(mb) =>
                {
                    var js = mb.JsRootObject;

                    var col = await GetCollectionAttributeAsync(js, "List");

                    col.GetArrayLength().Should().Be(0);
                    CheckStringCollection(col, dataContext.List);

                    await DoSafeAsyncUI(() =>
                    {
                        dataContext.List.Add("titi");
                    });

                    col = await GetCollectionAttributeAsync(js, "List");

                    CheckStringCollection(col, dataContext.List);

                    await DoSafeAsyncUI(() =>
                    {
                        dataContext.List.Add("kiki");
                        dataContext.List.Add("toto");
                    });

                    col = await GetCollectionAttributeAsync(js, "List");

                    CheckStringCollection(col, dataContext.List);

                    await DoSafeAsyncUI(() =>
                    {
                        dataContext.List.Move(0, 2);
                    });

                    col = await GetCollectionAttributeAsync(js, "List");

                    CheckStringCollection(col, dataContext.List);

                    await DoSafeAsyncUI(() =>
                    {
                        dataContext.List.Move(2, 1);
                    });

                    col = await GetCollectionAttributeAsync(js, "List");

                    CheckStringCollection(col, dataContext.List);

                    var comp = new List <string>(dataContext.List)
                    {
                        "newvalue"
                    };

                    col = await GetCollectionAttributeAsync(js, "List");

                    var chcol = GetAttribute(js, "List");
                    Call(chcol, "push", _WebView.Factory.CreateString("newvalue"));

                    col = await GetCollectionAttributeAsync(js, "List");

                    dataContext.List.Should().Equal(comp);
                    CheckStringCollection(col, dataContext.List);

                    await DoSafeAsyncUI(() =>
                    {
                        dataContext.List.Clear();
                    });

                    col = await GetCollectionAttributeAsync(js, "List");

                    CheckStringCollection(col, dataContext.List);
                }
            };

            await RunAsync(test);
        }