Esempio n. 1
0
        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");
            });
        }
Esempio n. 2
0
        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);
            });
        }
Esempio n. 3
0
        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));
                }
            });
        }