public void ModelTrackerCollection_ExistingCollection_RemoveModel_EventInvoked()
        {
            var  m       = Existing.Skip(1).First();
            bool removed = false;

            Existing.ModelRemovedEvent += (s, e) => {
                Assert.AreEqual(m.Data, e.Model.Data);
                Assert.AreEqual(m.Id, e.Model.Id);
                removed = true;
            };

            Existing.Remove(m.Id);
            Assert.IsTrue(removed);
        }
        public void ModelTrackerCollection_ExistingCollection_UpdateModel_EventInvoked()
        {
            var m       = Existing.Skip(1).First();
            var oldData = m.Data;
            var oldId   = m.Id;

            m      = new TestModel();
            m.Id   = oldId;
            m.Data = Guid.NewGuid().ToString();

            bool updated = false;

            Existing.ModelUpdatedEvent += (s, e) => {
                Assert.AreEqual(e.UpdatedModel.Data, m.Data);
                Assert.AreEqual(e.UpdatedModel.Id, m.Id);
                Assert.AreEqual(e.OldModel.Data, oldData);
                Assert.AreEqual(e.OldModel.Id, oldId);
                updated = true;
            };

            Existing.Update(m.Id, m);
            Assert.IsTrue(updated);
        }