Exemplo n.º 1
0
        /// <summary>
        /// Instanciate a new CJsonConverter
        /// </summary>
        public CJsonConverter()
        {
            var cache   = new SessionCacher();
            var factory = new GlueFactory(null, cache, null, null);

            _Converter = new CSharpToGlueMapper(cache, factory, new NullLogger());
        }
        public async Task Test_Circular_Reference_Simple()
        {
            await TestAsync(async() =>
            {
                var cacher   = new SessionCacher();
                _ConverTOJSO = GetCircularBreakerConverter(cacher);

                var res = (await Map(_CircularSimple, cacher)).JsValue;

                DoSafe(() =>
                {
                    res.Should().NotBeNull();
                    var res1 = res.GetValue("Reference");
                    res1.Should().NotBeNull();
                    res1.IsObject.Should().BeTrue();

                    var res2 = res1.GetValue("Reference");
                    res2.Should().NotBeNull();
                    res2.IsObject.Should().BeTrue();

                    var res3 = res1.GetValue("Reference");
                    res3.Should().NotBeNull();
                    res3.IsObject.Should().BeTrue();
                });
            });
        }
        public async Task Test_Circular_Reference_In_List()
        {
            await TestAsync(async() =>
            {
                var cacher   = new SessionCacher();
                _ConverTOJSO = GetCircularBreakerConverter(cacher);

                var res = (await Map(_CircularComplex, cacher)).JsValue;

                DoSafe(() =>
                {
                    res.Should().NotBeNull();

                    var res0 = res.GetValue("List");
                    res0.IsArray.Should().BeTrue();

                    var res1 = res0.GetArrayElements()[0];
                    res1.Should().NotBeNull();
                    res1.IsObject.Should().BeTrue();

                    var res2 = res1.GetValue("Reference");
                    res2.Should().NotBeNull();
                    res2.IsObject.Should().BeTrue();
                });
            });
        }
 public CSharpToGlueMapperTests(ITestOutputHelper testOutputHelper)
 {
     _TestOutputHelper = testOutputHelper;
     _Cacher           = Substitute.For <ISessionCache>();
     _Cacher.When(c => c.CacheFromCSharpValue(Arg.Any <object>(), Arg.Any <IJsCsGlue>()))
     .Do(callInfo => _Cache.Add(callInfo[0], (IJsCsGlue)callInfo[1]));
     _Cacher.GetCached(Arg.Any <object>()).Returns(callInfo => _Cache.GetOrDefault(callInfo[0]));
     _ObjectChangesListener = new ObjectChangesListener(_ => { }, _ => { }, _ => { }, _ => { });
     _GlueFactory           = new GlueFactory(null, _Cacher, null, _ObjectChangesListener);
     _Logger             = Substitute.For <IWebSessionLogger>();
     _CSharpToGlueMapper = new CSharpToGlueMapper(_Cacher, _GlueFactory, _Logger);
 }
        protected override void Init()
        {
            _CSharpMapper          = Substitute.For <ISessionCache>();
            _ObjectChangesListener = new ObjectChangesListener(_ => { }, _ => { }, _ => { }, _ => { });
            _GlueFactory           = new GlueFactory(null, _CSharpMapper, null, _ObjectChangesListener);
            _CSharpMapper.GetCached(Arg.Any <object>()).Returns((IJsCsGlue)null);
            _JavascriptFrameworkManager = Substitute.For <IJavascriptFrameworkManager>();
            _HtmlViewContext            = new HtmlViewContext(WebBrowserWindow, GetTestUIDispacther(), _JavascriptFrameworkManager, _Logger);
            _ConverTOJSO = new CSharpToGlueMapper(_CSharpMapper, _GlueFactory, _Logger);
            _Test        = new TestClass {
                S1 = "string", I1 = 25
            };
            _Tests = new List <TestClass>
            {
                new TestClass()
                {
                    S1 = "string1", I1 = 1
                },
                new TestClass()
                {
                    S1 = "string2", I1 = 2
                }
            };
            _Test2 = new Test2()
            {
                T1 = _Test, T2 = _Test
            };

            _TestsNg = new ArrayList
            {
                _Tests[0],
                _Tests[0]
            };

            _CircularSimple           = new Circular1();
            _CircularSimple.Reference = _CircularSimple;

            _CircularComplex = new Circular2();
            var circularChild = new Circular2
            {
                Reference = _CircularComplex
            };

            _CircularComplex.List.Add(circularChild);
        }