public void ESLoadEvents() { FakeVersionedEntity feeOriginal = new FakeVersionedEntity(); FakeVersionedEntity feeRestored = new FakeVersionedEntity(feeOriginal.Id); feeOriginal.RaiseFakeEvent(new FakeEvent() { TestString = "a" }); feeOriginal.RaiseFakeEvent(new FakeEvent() { TestString = "b" }); feeOriginal.RaiseFakeEvent(new FakeEvent() { TestString = "c" }); FakeEventSourcedRepository.Save(feeOriginal); FakeEventSourcedRepository.Load(feeRestored); Assert.AreEqual(feeOriginal.FakeString, feeRestored.FakeString, "Not the same string."); Assert.AreEqual(feeOriginal.Events.Count, 0, "Original with events."); Assert.AreEqual(feeRestored.Events.Count, 0, "Restored with events."); }
public void ESSaveEntityFailedSaving() { testAction.MarkExceptionSavingDbSet <TimeoutException>(1, true); FakeVersionedEntity fee = new FakeVersionedEntity(); fee.Events.Enqueue(new FakeEvent()); FakeEventSourcedRepository.Save(fee); }
public void ESSaveEntityFailedPublishSuceeded() { testAction.MarkExceptionSavingDbSet <Exception>(1, false); FakeVersionedEntity fee = new FakeVersionedEntity(); fee.Events.Enqueue(new FakeEvent()); FakeEventSourcedRepository.Save(fee); Assert.IsTrue(fee.Events.Count == 0, "Must no be events pending in queue"); Assert.AreEqual(Store.EnvelopeId.ToString(), fee.Id.ToString()); }
public void ESSaveEntityFailedPublishing() { Guid g = Guid.NewGuid(); FakeVersionedEntity fee = new FakeVersionedEntity(); fee.Events.Enqueue(new FakeEvent()); fee.Events.Enqueue(new FakeFailedEvent()); fee.Events.Enqueue(new FakeEvent()); FakeEventSourcedRepository.Save(fee); Assert.IsTrue(fee.Events.Count == 1, "One event pending in queue"); Assert.AreEqual(Store.EnvelopeId.ToString(), typeof(FakeFailedEvent).Name); }
public void ESSaveEntity() { FakeEvent fe = new FakeEvent(); FakeVersionedEntity fee = new FakeVersionedEntity(); fee.Events.Enqueue(fe); FakeEventSourcedRepository.Save(fee); Assert.IsTrue(fee.Events.Count == 0, "Events in queue"); Assert.IsTrue(String.IsNullOrEmpty(Store.EnvelopeId), "Different IDs"); Assert.AreEqual(Store.Id, fee.Id, "Different IDs"); }
public void ESSaveEntityFailedSavingAfterFailedPublishing() { testAction.MarkExceptionSavingDbSet <Exception>(1, false); FakeVersionedEntity fee = new FakeVersionedEntity(); fee.Events.Enqueue(new FakeEvent()); fee.Events.Enqueue(new FakeFailedEvent()); fee.Events.Enqueue(new FakeEvent()); FakeEventSourcedRepository.Save(fee); Assert.IsTrue(fee.Events.Count == 1, "One event pending in queue"); Assert.AreEqual(Store.EnvelopeId.ToString(), typeof(FakeFailedEvent).Name); }
public void ESApplyEventsUsingRaise() { int expectedEvents = 0; int expectedVersion = 3; string one = "1+"; string two = "1="; string three = "2"; Queue <IVersionedEvent> queue = new Queue <IVersionedEvent>(); queue.Enqueue(new FakeEvent()); FakeVersionedEntity fve = new FakeVersionedEntity(); FakeEvent fe1 = new FakeEvent() { TestString = one }; fe1.Version = 1; FakeEvent fe2 = new FakeEvent() { TestString = two }; fe2.Version = 2; FakeEvent fe3 = new FakeEvent() { TestString = three }; fe3.Version = 3; List <FakeEvent> fes = new List <FakeEvent>() { fe1, fe2, fe3 }; fve.ApplyEvents(fes); Assert.AreEqual(fve.FakeString, one + two + three, "Event not applied"); Assert.AreEqual(fve.Version, expectedVersion, "Version does not mismatch"); Assert.AreEqual(fve.Events.Count, expectedEvents, "There are pending events"); }
public void ESRaiseEvents() { int expectedEvents = 3; int expectedVersion = 3; string one = "1+"; string two = "1="; string three = "2"; Queue <IVersionedEvent> queue = new Queue <IVersionedEvent>(); queue.Enqueue(new FakeEvent()); FakeVersionedEntity fve = new FakeVersionedEntity(); FakeEvent fe1 = new FakeEvent() { TestString = one }; FakeEvent fe2 = new FakeEvent() { TestString = two }; FakeEvent fe3 = new FakeEvent() { TestString = three }; fve.RaiseFakeEvent(fe1); fve.RaiseFakeEvent(fe2); fve.RaiseFakeEvent(fe3); List <FakeEvent> fes = new List <FakeEvent>() { fe1, fe2, fe3 }; Assert.AreEqual(fve.FakeString, one + two + three, "Event not applied"); Assert.AreEqual(fve.Version, expectedVersion, "Version does not mismatch"); Assert.AreEqual(fve.Events.Count, expectedEvents, "Count events expected"); }