public void AddMutation_Adds_Published() { // Arrange var obj1 = new TestItem { Name = "Test", Age = 1, CreationDate = DateTime.Now }; var obj2 = new TestItem { Name = "Test", Age = 2, CreationDate = DateTime.Now }; var request = new PublishRequest(); // Act request.AddMutation(obj1, obj2); // Assert var model = JsonConvert.DeserializeObject <MutationModel <TestItem> >(request.Message); Assert.True(DateTime.UtcNow >= model.Published); Assert.True(model.Published != default(DateTime)); }
public void AddMutation_Adds_EventType() { // Arrange var obj1 = new TestItem { Name = "Test", Age = 1, CreationDate = DateTime.Now }; var obj2 = new TestItem { Name = "Test", Age = 2, CreationDate = DateTime.Now }; var eventType = "order-service.order"; var request = new PublishRequest(); // Act request.AddMutation(obj1, obj2, eventType); // Assert var model = JsonConvert.DeserializeObject <MutationModel <TestItem> >(request.Message); Assert.Equal(eventType, model.EventType); }
public void NestedItemChanged() { var obj1 = new TestItem { Name = "Test", Age = 10, CreationDate = DateTime.Today, Address = new TestAddress { AddressRow1 = "B" } }; var obj2 = new TestItem { Name = "Test", Age = 10, CreationDate = DateTime.Today, Address = new TestAddress { AddressRow1 = "C" } }; var model = new MutationModel <TestItem> { OldImage = obj1, NewImage = obj2 }; var diff = model.Diff(); Assert.Equal(2, diff.Count); Assert.Contains(diff, p => p == "Address"); Assert.Contains(diff, p => p == "Address.AddressRow1"); }
public void NestedDictionaryContentChanged() { var obj1 = new TestItem { Name = "Test", Age = 10, CreationDate = DateTime.Today, Address = new TestAddress { AddressRow1 = "B" } }; var obj2 = new TestItem { Name = "Test", Age = 10, CreationDate = DateTime.Today, Address = new TestAddress { AddressRow1 = "C" } }; var fixture = new Fixture(); var minisDictionary = new Dictionary <string, TestMiniItem>(); fixture.CreateMany <KeyValuePair <string, TestMiniItem> >().ToList().ForEach(kvp => minisDictionary.Add(kvp.Key, kvp.Value)); var minisDictionary2 = new Dictionary <string, TestMiniItem>(); fixture.CreateMany <KeyValuePair <string, TestMiniItem> >().ToList().ForEach(kvp => minisDictionary2.Add(kvp.Key, kvp.Value)); obj1.MinisDictionary = minisDictionary; obj2.MinisDictionary = minisDictionary2; var model = new MutationModel <TestItem> { OldImage = obj1, NewImage = obj2 }; var diff = model.Diff(); Assert.Equal(5, diff.Count); Assert.Contains(diff, p => p == "Address"); Assert.Contains(diff, p => p == "Address.AddressRow1"); Assert.Contains(diff, p => p == "MinisDictionary"); Assert.Contains(diff, p => p == "MinisDictionary.Id"); Assert.Contains(diff, p => p == "MinisDictionary.Message"); }