Esempio n. 1
0
        public void NestedClassesSerializonShouldWork()
        {
            var simple = new SimpleClass
            {
                Integer       = 5,
                Floatingpoint = 1.23,
                Text          = "test",
                PrivateText   = "invisible",
                Timestamp     = new DateTime(2016, 11, 11, 12, 13, 14, DateTimeKind.Utc)
            };

            var model = new NestedClass
            {
                //Name = "outer",
                Nested = new List <NestedClass2>
                {
                    new NestedClass2
                    {
                        NestedSimple = new[] { simple, simple, simple }
                    }
                }
            };


            var json = JsonSerializer.SerializeObjectString(null, model);

            var obj = JsonConvert.DeserializeObject(json);

            Assert.NotNull(obj);

            Assert.StartsWith("{", json);
            Assert.EndsWith("}", json);
        }
        public void HierarchicalClassesSerializationShouldWork()
        {
            HierarchicalClass NewHierarchicalClass(string name, int depth)
            {
                return(new HierarchicalClass
                {
                    Name = name,
                    Children = (depth > 0)
                        ? Enumerable.Range(1, 10)
                               .Select(ix => NewHierarchicalClass($"child {depth} {ix}", depth - 1))
                               .ToList()
                        : null
                });
            }

            var hierarchy = NewHierarchicalClass("Root", 3);

            var watch = new Stopwatch();

            watch.Start();

            var json = JsonSerializer.SerializeObjectString(null, hierarchy);

            watch.Stop();
            _logger.LogTrace($"HierarchicalClassesSerialization: {watch.ElapsedMilliseconds}ms");

            var obj = JsonConvert.DeserializeObject(json);

            Assert.NotNull(obj);

            Assert.StartsWith("{", json);
            Assert.EndsWith("}", json);
        }
Esempio n. 3
0
        public void StringsIncludingNewlineShouldBeEscaped()
        {
            var model = new SimpleClass
            {
                Text = "line1" + Environment.NewLine + "line2"
            };

            var json = JsonSerializer.SerializeObjectString(null, model);

            var obj = JsonConvert.DeserializeObject(json);

            Assert.NotNull(obj);

            Assert.Contains("\\n", json);
        }
        public void DictionaryStringObjectSerializationShouldBeDoneAsObjects()
        {
            var dt   = new DateTime(2020, 02, 12, 17, 37, 44, DateTimeKind.Utc);
            var dict = new Dictionary <string, object>
            {
                { "Integer", 5 },
                { "FloatingPoint", 1.23 },
                { "Text", "test" },
                { "Timestamp", dt }
            };

            var json = JsonSerializer.SerializeObjectString(null, dict);

            var obj = JsonConvert.DeserializeObject <JObject>(json);

            Assert.NotNull(obj);

            Assert.Equal(5, obj["Integer"].Value <int>());
            Assert.Equal(1.23, obj["FloatingPoint"].Value <double>());
            Assert.Equal("test", obj["Text"].Value <string>());
            Assert.Equal(dt, obj["Timestamp"].Value <DateTime>());
        }
Esempio n. 5
0
        public void SimpleClassSerializonShouldWork()
        {
            var model = new SimpleClass
            {
                Integer       = 5,
                Floatingpoint = 1.23,
                Text          = "test",
                PrivateText   = "invisible",
                Timestamp     = new DateTime(2016, 11, 11, 12, 13, 14, DateTimeKind.Utc)
            };

            var json = JsonSerializer.SerializeObjectString(null, model);

            var obj = JsonConvert.DeserializeObject(json);

            Assert.NotNull(obj);

            // public properties - not NULL
            Assert.Contains("Integer", json);
            Assert.Contains("5", json);

            Assert.Contains("Boolean", json);
            Assert.Contains("false", json);

            Assert.Contains("Floatingpoint", json);
            Assert.Contains("1.23", json);

            Assert.Contains("Text", json);
            Assert.Contains("test", json);

            Assert.Contains("Timestamp", json);
            Assert.Contains("2016-11-11T12:13:14Z", json);

            // private fields
            Assert.DoesNotContain("PrivateText", json);
            Assert.DoesNotContain("invisible", json);
        }