示例#1
0
        public void LFSUpdateRoundTripSerialization()
        {
            var options = new JsonSerializerOptions()
            {
                Converters = { new NotificationJsonConverter() }
            };

            var original = new LFSListUpdated
            {
                Type = ListItemChangeType.ItemAdded,
                Item = new LFSProjectInfo()
                {
                    Name      = "something",
                    Public    = true,
                    Slug      = "smth",
                    CreatedAt = DateTime.Parse("2021-01-02T06:12:00"),
                    UpdatedAt = DateTime.Parse("2021-01-02T06:15:00"),
                }
            };

            var serialized = JsonSerializer.Serialize((SerializedNotification)original, options);

            var deserialized = JsonSerializer.Deserialize <SerializedNotification>(serialized, options);

            Assert.NotNull(deserialized);

            Assert.IsType <LFSListUpdated>(deserialized);

            var casted = (LFSListUpdated)deserialized;

            Assert.Equal(original.Type, casted.Type);

            var item = casted.Item;

            Assert.Equal(original.Item.Name, item.Name);
            Assert.Equal(original.Item.Public, item.Public);
            Assert.Equal(original.Item.Slug, item.Slug);
            Assert.Equal(original.Item.CreatedAt, item.CreatedAt);
            Assert.Equal(original.Item.UpdatedAt, item.UpdatedAt);
        }
示例#2
0
        public void NotificationJsonConverter_AddsTypeOnce()
        {
            var options = new JsonSerializerOptions()
            {
                Converters = { new NotificationJsonConverter() }
            };

            var original = new LFSListUpdated
            {
                Type = ListItemChangeType.ItemAdded,
                Item = new LFSProjectInfo()
                {
                    Name      = "something",
                    Slug      = "smth",
                    Public    = true,
                    CreatedAt = DateTime.Parse("2021-01-02T06:12:00"),
                    UpdatedAt = DateTime.Parse("2021-01-02T06:15:00"),
                }
            };

            var serialized = JsonSerializer.Serialize((SerializedNotification)original, options);

            Assert.Single(Regex.Matches(serialized, nameof(SerializedNotification.NotificationType)));
        }