public void NotifyByWhereAndTwoConditionTest() { using (var subscruber = new BatchEventTestSubscruber()) { NotifyConfiguration.Instance.BatchSubscribe(subscruber.Handler) .IfEntity <SimpleEntity>() .AndWhere(x => x.Text.Contains("1")) .AndWhere(x => x.Text.Contains("2")); using (var uow = UnitOfWorkFactory.CreateWithoutRoot()) { var entity1 = new SimpleEntity { Text = "1,2" }; uow.Save(entity1); var entity2 = new SimpleEntity { Text = "2" }; uow.Save(entity2); var entity3 = new SimpleEntity { Text = "1" }; uow.Save(entity3); uow.Commit(); } Assert.That(subscruber.calls.Count, Is.EqualTo(1)); var changeEvents = subscruber.calls.First(); Assert.That(changeEvents.Count(), Is.EqualTo(1)); Assert.That(changeEvents.First().EventType, Is.EqualTo(TypeOfChangeEvent.Insert)); var entity = changeEvents.First().GetEntity <SimpleEntity>(); Assert.That(entity.Text, Is.EqualTo("1,2")); } }
public void BatchSubscribe_InsertAndUpdateAndDelete_GetOldAndNewPropertyValuesTest() { using (var subscruber = new BatchEventTestSubscruber()) { NotifyConfiguration.Instance.BatchSubscribeOnEntity <SimpleEntity>(subscruber.Handler); using (var uow = UnitOfWorkFactory.CreateWithNewRoot <SimpleEntity>()) { uow.Root.Text = "Test text"; uow.Save(); uow.Session.Evict(uow.Root); var loadedEntity = uow.GetById <SimpleEntity>(1); loadedEntity.Text = "New test text"; uow.Save(loadedEntity); uow.Commit(); uow.Delete(loadedEntity); uow.Commit(); } Assert.That(subscruber.calls.Count, Is.EqualTo(3)); var event1 = subscruber.calls[0].First(); Assert.That(event1.GetOldValue <SimpleEntity>(x => x.Text), Is.Null); Assert.That(event1.GetNewValue <SimpleEntity>(x => x.Text), Is.EqualTo("Test text")); var event2 = subscruber.calls[1].First(); Assert.That(event2.GetOldValue <SimpleEntity>(x => x.Text), Is.EqualTo("Test text")); Assert.That(event2.GetNewValue <SimpleEntity>(x => x.Text), Is.EqualTo("New test text")); var event3 = subscruber.calls[2].First(); Assert.That(event3.GetOldValue <SimpleEntity>(x => x.Text), Is.EqualTo("New test text")); Assert.That(event3.GetNewValue <SimpleEntity>(x => x.Text), Is.Null); } }
public void DirectBatchSubscribe_NotifySaveEventTest() { using (var subscruber = new BatchEventTestSubscruber()) { NotifyConfiguration.Instance.BatchSubscribeOnEntity <SimpleEntity>(subscruber.Handler); using (var uow = UnitOfWorkFactory.CreateWithNewRoot <SimpleEntity>()) { uow.Save(); } Assert.That(subscruber.calls.Count, Is.EqualTo(1)); } }
public void NotifyOnlyDeleteEventTest() { using (var subscruber = new BatchEventTestSubscruber()) { NotifyConfiguration.Instance.BatchSubscribe(subscruber.Handler) .IfEntity <SimpleEntity>().AndChangeType(TypeOfChangeEvent.Delete); using (var uow = UnitOfWorkFactory.CreateWithNewRoot <SimpleEntity>()) { uow.Save(); uow.Session.Evict(uow.Root); var loadedEntity = uow.GetById <SimpleEntity>(1); uow.Delete(loadedEntity); uow.Commit(); } Assert.That(subscruber.calls.Count, Is.EqualTo(1)); var changeEvents = subscruber.calls.First(); Assert.That(changeEvents.First().EventType, Is.EqualTo(TypeOfChangeEvent.Delete)); } }