Esempio n. 1
0
        public void JsonCodeGenerator_WithDistinctInnerObject()
        {
            var obj = new WithInnerObject()
            {
                First = new WithIntsAndDateTimes()
                {
                    Integer = 1, Long = (long)(int.MaxValue) + 1, Date = DateTime.Now
                },
                Second = new WithStrings()
                {
                    Title = "test", Category = "category"
                }
            };

            var generator  = new JsonCodeGenerator("csharp");
            var classTypes = generator.GenerateClassesTypesFromObject("Root", JsonExtensions.ToJObject(obj))
                             .ToLookup(x => x.Name);

            Assert.Equal(3, classTypes.Count());


            var clazz = classTypes["Root"].Single() as JsonCodeGenerator.ClassType;

            Assert.NotNull(clazz);

            var first = classTypes["FirstClass"].Single() as JsonCodeGenerator.ClassType;

            Assert.NotNull(first);

            Assert.Equal(3, first.Properties.Count);
            Assert.Equal("int", first.Properties["Integer"].Name);
            Assert.Equal("long", first.Properties["Long"].Name);
            Assert.Equal("DateTimeOffset", first.Properties["Date"].Name);

            Assert.True(first.Properties.All(x => !x.Value.IsArray && x.Value.IsPrimitive));

            var second = classTypes["SecondClass"].Single() as JsonCodeGenerator.ClassType;

            Assert.NotNull(second);

            Assert.Equal(2, second.Properties.Count);
            Assert.Equal("string", second.Properties["Title"].Name);
            Assert.Equal("string", second.Properties["Category"].Name);
            Assert.True(second.Properties.All(x => !x.Value.IsArray && x.Value.IsPrimitive));
        }
Esempio n. 2
0
        public void JsonCodeGenerator_WithDistinctInnerObject()
        {
            var obj = new WithInnerObject()
            {
                First = new WithIntsAndDateTimes() { Integer = 1, Long = (long)(int.MaxValue) + 1, Date = DateTime.Now },
                Second = new WithStrings() { Title = "test", Category = "category" }
            };

            var generator = new JsonCodeGenerator("csharp");
            var classTypes = generator.GenerateClassesTypesFromObject("Root", JsonExtensions.ToJObject(obj))
                                      .ToLookup(x => x.Name);

            Assert.Equal(3, classTypes.Count());

            var clazz = classTypes["Root"].Single() as JsonCodeGenerator.ClassType;
            Assert.NotNull(clazz);

            var first = classTypes["FirstClass"].Single() as JsonCodeGenerator.ClassType;
            Assert.NotNull(first);

            Assert.Equal(3, first.Properties.Count);
            Assert.Equal("int", first.Properties["Integer"].Name);
            Assert.Equal("long", first.Properties["Long"].Name);
            Assert.Equal("DateTimeOffset", first.Properties["Date"].Name);

            Assert.True(first.Properties.All(x => !x.Value.IsArray && x.Value.IsPrimitive));

            var second = classTypes["SecondClass"].Single() as JsonCodeGenerator.ClassType;
            Assert.NotNull(second);

            Assert.Equal(2, second.Properties.Count);
            Assert.Equal("string", second.Properties["Title"].Name);
            Assert.Equal("string", second.Properties["Category"].Name);
            Assert.True(second.Properties.All(x => !x.Value.IsArray && x.Value.IsPrimitive));
        }