[Test] public void TestChange() { IResource email = _storage.NewResource("Email"); VerifyNextEvent(EventType.Add, email.Id, 0, 0); email.SetProp("Subject", "Test"); _queue.BeginProcessEvents(); ResourceListEvent ev = _queue.GetNextEvent(); Assert.AreEqual(EventType.Change, ev.EventType); Assert.IsTrue(ev.ChangeSet.IsPropertyChanged(_propSubject)); _queue.EndProcessEvents(); }
[Test] public void MergeChanges() { IResource email = _storage.NewResource("Email"); DiscardEvents(); email.SetProp(_propSubject, "Test"); email.SetProp(_propSubject, "Test2"); _queue.BeginProcessEvents(); ResourceListEvent ev = _queue.GetNextEvent(); Assert.AreEqual(EventType.Change, ev.EventType); Assert.IsTrue(ev.ChangeSet.IsPropertyChanged(_propSubject)); _queue.EndProcessEvents(); Assert.IsTrue(_queue.IsEmpty(), "Changes must have been merged"); }
private void VerifyNextEvent(EventType evType, int id, int index, int listIndex) { _queue.BeginProcessEvents(); try { ResourceListEvent ev = _queue.GetNextEvent(); Assert.AreEqual(evType, ev.EventType); if (evType == EventType.Remove) { Assert.IsTrue(ev.ResourceID == -1 || ev.ResourceID == id, "Resource ID must be correct (expected " + id + ", actual " + ev.ResourceID + ")"); } else { Assert.AreEqual(id, ev.ResourceID, "Resource ID must be correct"); } Assert.AreEqual(index, ev.Index, "Index must be correct"); Assert.AreEqual(listIndex, ev.ListIndex, "ListIndex must be correct"); } finally { _queue.EndProcessEvents(); } }