public void ShouldGenerateDeltasForMessagesInList() { var list = new SimpleDeltaMessageList(); list.TestBar.Add(new SimpleListDeltaMessage { H = "hello" }); list.ClearEvents(); list.TestBar[0].H = "world"; var root = AssertGenerated(list); var e = root.Events[0]; Assert.Equal(EventData.ActionOneofCase.ListEvent, e.ActionCase); AssertPath(e, new[] { 11 }); var le = e.ListEvent; Assert.Equal(ListAction.UpdateList, le.ListAction); Assert.Equal(EventData.ActionOneofCase.Set, le.EventData.ActionCase); AssertPath(le.EventData, new[] { 1 }); }
public void ShouldApplyEventsDeterministicallyMessageList() { var list = new SimpleDeltaMessageList(); list.TestBar.Add(new SimpleListDeltaMessage { H = "hello" }); list.TestBar.Add(new SimpleListDeltaMessage { H = "world" }); list.TestBar.Add(new SimpleListDeltaMessage { H = "bad" }); list.TestBar.Add(new SimpleListDeltaMessage { H = "bad_index" }); list.TestBar[1] = new SimpleListDeltaMessage { H = "worlds" }; list.TestBar.Insert(1, new SimpleListDeltaMessage { H = "all" }); list.TestBar.Remove(new SimpleListDeltaMessage { H = "bad" }); list.TestBar.RemoveAt(3); list.TestBar.Clear(); list.TestBar.Add(new SimpleListDeltaMessage { H = "hello" }); list.TestBar.Add(new SimpleListDeltaMessage { H = "world" }); list.TestBar.Add(new SimpleListDeltaMessage { H = "bad" }); list.TestBar.Add(new SimpleListDeltaMessage { H = "bad_index" }); list.TestBar[1] = new SimpleListDeltaMessage { H = "worlds" }; list.TestBar.Insert(1, new SimpleListDeltaMessage { H = "all" }); list.TestBar.Remove(new SimpleListDeltaMessage { H = "bad" }); list.TestBar.RemoveAt(3); var root = list.PeekEvents(); var newList = new SimpleDeltaMessageList(); newList.ApplyEvents(root); Assert.Equal(list, newList); Assert.Equal(3, newList.TestBar.Count); Assert.Equal(new SimpleListDeltaMessage { H = "hello" }, newList.TestBar[0]); Assert.Equal(new SimpleListDeltaMessage { H = "all" }, newList.TestBar[1]); Assert.Equal(new SimpleListDeltaMessage { H = "worlds" }, newList.TestBar[2]); }