public void Optimistic_concurrency_is_supported() { NewConnection(con => { var eventStore = new GetEventStore(con); var streamName = CreateDisposableStreamName(); // version number will be 2 (3 events, 0 based) eventStore.AppendEventsToStream(streamName, testEvents, null); var newEvnt = new TestEvent(Guid.NewGuid()) { Handle = "New", Name = "Newnew" }; try { var expectedVersion = 1; // we know the version is already 2 eventStore.AppendEventsToStream(streamName, new List <TestEvent> { newEvnt }, expectedVersion); } catch (AggregateException e) { var extype = e.InnerExceptions.First().GetType(); Assert.AreEqual(typeof(WrongExpectedVersionException), extype); return; } Assert.Fail("Optimistic concurrency violation was not detected"); }); }
public void A_subset_of_events_can_be_retrieved_by_querying_on_version_numbers() { NewConnection(con => { var eventStore = new GetEventStore(con); var streamName = CreateDisposableStreamName(); eventStore.AppendEventsToStream(streamName, testEvents, null); var fromEs = eventStore.GetStream(streamName, 1, 1); Assert.AreEqual(1, fromEs.Count()); Assert.AreEqual("Trevor", ((TestEvent)fromEs.Single()).Handle); }); }
public void Events_are_persisted_and_can_be_retrieved() { NewConnection(con => { var eventStore = new GetEventStore(con); var streamName = CreateDisposableStreamName(); eventStore.AppendEventsToStream(streamName, testEvents, null); var fromEs = eventStore.GetStream(streamName, 0, Int32.MaxValue - 1); Assert.AreEqual(fromEs.Count(), testEvents.Count()); foreach (var e in testEvents) { Assert.IsTrue(fromEs.Contains(e)); } }); }