コード例 #1
0
        [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();
        }
コード例 #2
0
        [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");
        }
コード例 #3
0
 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();
     }
 }