コード例 #1
0
        public void Deserialize_NullValue_GenerateRootWithfactory()
        {
            var strExp     = "A + null + C + NULL + \"null\"";
            var factory    = new EntityFactoryDeserializerExtend();
            var serializer = new CircularEntityExpressionDeserializer <CircularEntity>();
            var root       = serializer.Deserialize(strExp, factory);
            var entities   = factory.Entities.Values.ToList();

            Assert.Equal(4, root.Children.Count());
            Assert.Null(root.Children.ElementAt(0));
            Assert.Equal("C", root.Children.ElementAt(1).Name);
            Assert.Equal("NULL", root.Children.ElementAt(2).Name);
            Assert.Equal("null", root.Children.ElementAt(3).Name);

            // no entity create directly
            Assert.Equal(4, entities.Count);
        }
コード例 #2
0
        public void Deserialize_UsingfactoryWithStringParamsInVerbatin_GenerateRootWithfactory()
        {
            var strExp     = "NewEntity('\"quote\"') + NewEntity('\\'quote\\'')";
            var factory    = new EntityFactoryDeserializerExtend();
            var serializer = new CircularEntityExpressionDeserializer <CircularEntity>();
            var root       = serializer.Deserialize(strExp, factory);
            var entities   = factory.Entities.Values.ToList();

            Assert.Single(root.Children);
            Assert.Equal("\"quote\"", root.Name);

            var children1 = root.Children.ElementAt(0);

            Assert.Empty(children1.Children);
            Assert.Equal("'quote'", children1.Name);

            // no entity create directly
            Assert.Empty(entities);
        }
コード例 #3
0
        public void Deserialize_UsingfactoryInstancesAndStaticWithStringParams_GenerateRootWithfactory()
        {
            var strExp     = "NewEntity('my entity name1') + (NewEntityStatic('my entity name 2') + B - GraphExpression.Tests.Serialization.DeserializationExpressionTest.EntityFactoryDeserializerExtend.NewEntityStatic('B'))";
            var factory    = new EntityFactoryDeserializerExtend();
            var serializer = new CircularEntityExpressionDeserializer <CircularEntity>();
            var root       = serializer.Deserialize(strExp, factory);
            var entities   = factory.Entities.Values.ToList();

            Assert.Single(root.Children);
            Assert.Equal("my entity name1", root.Name);

            var children1 = root.Children.ElementAt(0);

            Assert.Single(children1.Children);
            Assert.Equal("my entity name 2", children1.Name);

            // unique entity create directly
            Assert.Single(entities);
            Assert.Equal("B", entities[0].Name);
        }
コード例 #4
0
        public void Deserialize_UsingfactoryWithStringParamsInVerbatin_BUG_KNOWN()
        {
            var strExp     = "NewEntity('\\' \\\'')";
            var factory    = new EntityFactoryDeserializerExtend();
            var serializer = new CircularEntityExpressionDeserializer <CircularEntity>();
            var root       = serializer.Deserialize(strExp, factory);
            var entities   = factory.Entities.Values.ToList();

            // DEVERIA SER: ' \'
            Assert.Equal("' '", root.Name);

            // OCORRE EXCEPTION
            try
            {
                strExp = "NewEntity('\\\\'')";
                root   = serializer.Deserialize(strExp, factory);
                Assert.Equal("' ' '", root.Name);
            }
            catch
            {
                Assert.True(true);
            }
        }