Ejemplo n.º 1
0
        public void Retrieving_all_events_should_return_the_same_as_added()
        {
            var targetStore = new RavenDBEventStore(_documentStore);
            var id = Guid.NewGuid();

            int sequenceCounter = 0;

            var events = new SourcedEvent[]
                             {
                                 new CustomerCreatedEvent(Guid.NewGuid(), id, sequenceCounter++, DateTime.UtcNow, "Foo",
                                                          35),
                                 new CustomerNameChanged(Guid.NewGuid(), id, sequenceCounter++, DateTime.UtcNow,
                                                         "Name" + sequenceCounter),
                                 new CustomerNameChanged(Guid.NewGuid(), id, sequenceCounter++, DateTime.UtcNow,
                                                         "Name" + sequenceCounter),
                                 new CustomerNameChanged(Guid.NewGuid(), id, sequenceCounter++, DateTime.UtcNow,
                                                         "Name" + sequenceCounter)
                             };

            var eventSource = MockRepository.GenerateMock<IEventSource>();
            eventSource.Stub(e => e.EventSourceId).Return(id);
            eventSource.Stub(e => e.InitialVersion).Return(0);
            eventSource.Stub(e => e.Version).Return(events.Length);
            eventSource.Stub(e => e.GetUncommittedEvents()).Return(events);

            targetStore.Save(eventSource);

            var result = targetStore.GetAllEvents(id);
            result.Count().Should().Be(events.Length);
            result.First().EventIdentifier.Should().Be(events.First().EventIdentifier);
            Assert.IsTrue(result.SequenceEqual(events));
        }
Ejemplo n.º 2
0
        public void Saving_event_source_should_succeed()
        {
            var targetStore = new RavenDBEventStore(_documentStore);
            var id = Guid.NewGuid();

            int sequenceCounter = 0;

            var events = new SourcedEvent[]
                             {
                                 new CustomerCreatedEvent(Guid.NewGuid(), id, sequenceCounter++, DateTime.UtcNow, "Foo",
                                                          35),
                                 new CustomerNameChanged(Guid.NewGuid(), id, sequenceCounter++, DateTime.UtcNow,
                                                         "Name" + sequenceCounter),
                                 new CustomerNameChanged(Guid.NewGuid(), id, sequenceCounter++, DateTime.UtcNow,
                                                         "Name" + sequenceCounter),
                                 new CustomerNameChanged(Guid.NewGuid(), id, sequenceCounter++, DateTime.UtcNow,
                                                         "Name" + sequenceCounter)
                             };

            var eventSource = MockRepository.GenerateMock<IEventSource>();
            eventSource.Stub(e => e.EventSourceId).Return(id);
            eventSource.Stub(e => e.InitialVersion).Return(0);
            eventSource.Stub(e => e.Version).Return(events.Length);
            eventSource.Stub(e => e.GetUncommittedEvents()).Return(events);

            targetStore.Save(eventSource);
        }
Ejemplo n.º 3
0
        public void Saving_event_source_while_there_is_a_newer_event_source_should_throw_concurency_exception()
        {
            var targetStore = new RavenDBEventStore(_documentStore);
            var id          = Guid.NewGuid();

            int sequenceCounter = 0;

            var events = new SourcedEvent[]
            {
                new CustomerCreatedEvent(Guid.NewGuid(), id, sequenceCounter++, DateTime.UtcNow, "Foo",
                                         35),
                new CustomerNameChanged(Guid.NewGuid(), id, sequenceCounter++, DateTime.UtcNow,
                                        "Name" + sequenceCounter)
            };

            var eventSource = MockRepository.GenerateMock <IEventSource>();

            eventSource.Stub(e => e.EventSourceId).Return(id).Repeat.Any();
            eventSource.Stub(e => e.InitialVersion).Return(0).Repeat.Any();
            eventSource.Stub(e => e.Version).Return(events.Length).Repeat.Any();
            eventSource.Stub(e => e.GetUncommittedEvents()).Return(events).Repeat.Any();

            targetStore.Save(eventSource);

            Action act = () => targetStore.Save(eventSource);

            act.ShouldThrow <ConcurrencyException>();
        }
Ejemplo n.º 4
0
        public void Retrieving_all_events_should_return_the_same_as_added()
        {
            var targetStore = new RavenDBEventStore(_documentStore);
            var id          = Guid.NewGuid();

            int sequenceCounter = 0;

            var events = new SourcedEvent[]
            {
                new CustomerCreatedEvent(Guid.NewGuid(), id, sequenceCounter++, DateTime.UtcNow, "Foo",
                                         35),
                new CustomerNameChanged(Guid.NewGuid(), id, sequenceCounter++, DateTime.UtcNow,
                                        "Name" + sequenceCounter),
                new CustomerNameChanged(Guid.NewGuid(), id, sequenceCounter++, DateTime.UtcNow,
                                        "Name" + sequenceCounter),
                new CustomerNameChanged(Guid.NewGuid(), id, sequenceCounter++, DateTime.UtcNow,
                                        "Name" + sequenceCounter)
            };

            var eventSource = MockRepository.GenerateMock <IEventSource>();

            eventSource.Stub(e => e.EventSourceId).Return(id);
            eventSource.Stub(e => e.InitialVersion).Return(0);
            eventSource.Stub(e => e.Version).Return(events.Length);
            eventSource.Stub(e => e.GetUncommittedEvents()).Return(events);

            targetStore.Save(eventSource);

            var result = targetStore.GetAllEvents(id);

            result.Count().Should().Be(events.Length);
            result.First().EventIdentifier.Should().Be(events.First().EventIdentifier);
            Assert.IsTrue(result.SequenceEqual(events));
        }
Ejemplo n.º 5
0
        public void Event_saving_smoke_test()
        {
            var targetStore = new RavenDBEventStore(_documentStore);
            var id          = Guid.NewGuid();

            int sequenceCounter = 0;

            var events = new UncommittedEventStream(Guid.NewGuid());

            events.Append(new UncommittedEvent(Guid.NewGuid(), id, sequenceCounter++, 0, DateTime.UtcNow, new CustomerCreatedEvent("Foo",
                                                                                                                                   35),
                                               new Version(1, 0)));
            events.Append(new UncommittedEvent(Guid.NewGuid(), id, sequenceCounter++, 0, DateTime.UtcNow, new CustomerNameChanged(
                                                   "Name" + sequenceCounter),
                                               new Version(1, 0)));
            events.Append(new UncommittedEvent(Guid.NewGuid(), id, sequenceCounter++, 0, DateTime.UtcNow, new CustomerNameChanged(
                                                   "Name" + sequenceCounter),
                                               new Version(1, 0)));
            events.Append(new UncommittedEvent(Guid.NewGuid(), id, sequenceCounter++, 0, DateTime.UtcNow, new CustomerNameChanged(
                                                   "Name" + sequenceCounter),
                                               new Version(1, 0)));


            targetStore.Store(events);
        }
Ejemplo n.º 6
0
        public void Saving_event_source_should_succeed()
        {
            var targetStore = new RavenDBEventStore(_documentStore);
            var id          = Guid.NewGuid();

            int sequenceCounter = 0;

            var events = new SourcedEvent[]
            {
                new CustomerCreatedEvent(Guid.NewGuid(), id, sequenceCounter++, DateTime.UtcNow, "Foo",
                                         35),
                new CustomerNameChanged(Guid.NewGuid(), id, sequenceCounter++, DateTime.UtcNow,
                                        "Name" + sequenceCounter),
                new CustomerNameChanged(Guid.NewGuid(), id, sequenceCounter++, DateTime.UtcNow,
                                        "Name" + sequenceCounter),
                new CustomerNameChanged(Guid.NewGuid(), id, sequenceCounter++, DateTime.UtcNow,
                                        "Name" + sequenceCounter)
            };

            var eventSource = MockRepository.GenerateMock <IEventSource>();

            eventSource.Stub(e => e.EventSourceId).Return(id);
            eventSource.Stub(e => e.InitialVersion).Return(0);
            eventSource.Stub(e => e.Version).Return(events.Length);
            eventSource.Stub(e => e.GetUncommittedEvents()).Return(events);

            targetStore.Save(eventSource);
        }
        public void Event_saving_smoke_test()
        {
            var targetStore = new RavenDBEventStore(_documentStore);
            var id = Guid.NewGuid();

            int sequenceCounter = 0;

            var events = new UncommittedEventStream(Guid.NewGuid());

            events.Append(new UncommittedEvent(Guid.NewGuid(), id, sequenceCounter++, 0, DateTime.UtcNow, new CustomerCreatedEvent("Foo",
                                                                                                                                   35),
                                               new Version(1, 0)));
            events.Append(new UncommittedEvent(Guid.NewGuid(), id, sequenceCounter++, 0, DateTime.UtcNow, new CustomerNameChanged(
                                                                                                              "Name" + sequenceCounter),
                                               new Version(1, 0)));
            events.Append(new UncommittedEvent(Guid.NewGuid(), id, sequenceCounter++, 0, DateTime.UtcNow, new CustomerNameChanged(
                                                                                                              "Name" + sequenceCounter),
                                               new Version(1, 0)));
            events.Append(new UncommittedEvent(Guid.NewGuid(), id, sequenceCounter++, 0, DateTime.UtcNow, new CustomerNameChanged(
                                                                                                              "Name" + sequenceCounter),
                                               new Version(1, 0)));
                             

            targetStore.Store(events);
        }
Ejemplo n.º 8
0
        public void Saving_event_source_while_there_is_a_newer_event_source_should_throw_concurency_exception()
        {
            var targetStore = new RavenDBEventStore(_documentStore);
            var id          = Guid.NewGuid();

            int sequenceCounter = 0;

            var events = new UncommittedEventStream(Guid.NewGuid());

            events.Append(new UncommittedEvent(Guid.NewGuid(), id, sequenceCounter++, 0, DateTime.UtcNow, new CustomerCreatedEvent("Foo",
                                                                                                                                   35),
                                               new Version(1, 0)));
            events.Append(new UncommittedEvent(Guid.NewGuid(), id, sequenceCounter++, 0, DateTime.UtcNow, new CustomerNameChanged(
                                                   "Name" + sequenceCounter),
                                               new Version(1, 0)));

            targetStore.Store(events);

            Action act = () => targetStore.Store(events);

            act.ShouldThrow <ConcurrencyException>();
        }
Ejemplo n.º 9
0
        public void Retrieving_all_events_should_return_the_same_as_added()
        {
            var targetStore = new RavenDBEventStore(_documentStore);
            var id          = Guid.NewGuid();

            int sequenceCounter = 0;

            var events = new UncommittedEventStream(Guid.NewGuid());

            events.Append(new UncommittedEvent(Guid.NewGuid(), id, sequenceCounter++, 0, DateTime.UtcNow, new CustomerCreatedEvent("Foo",
                                                                                                                                   35),
                                               new Version(1, 0)));
            events.Append(new UncommittedEvent(Guid.NewGuid(), id, sequenceCounter++, 0, DateTime.UtcNow, new CustomerNameChanged(
                                                   "Name" + sequenceCounter),
                                               new Version(1, 0)));
            events.Append(new UncommittedEvent(Guid.NewGuid(), id, sequenceCounter++, 0, DateTime.UtcNow, new CustomerNameChanged(
                                                   "Name" + sequenceCounter),
                                               new Version(1, 0)));
            events.Append(new UncommittedEvent(Guid.NewGuid(), id, sequenceCounter++, 0, DateTime.UtcNow, new CustomerNameChanged(
                                                   "Name" + sequenceCounter),
                                               new Version(1, 0)));

            targetStore.Store(events);

            var result = targetStore.ReadFrom(id, long.MinValue, long.MaxValue);

            result.Count().Should().Be(events.Count());
            result.First().EventIdentifier.Should().Be(events.First().EventIdentifier);

            var streamList = events.ToList();
            var resultList = result.ToList();

            for (int i = 0; i < resultList.Count; i++)
            {
                Assert.IsTrue(AreEqual(streamList[i], resultList[i]));
            }
        }
Ejemplo n.º 10
0
        public void Retrieving_all_events_should_return_the_same_as_added()
        {
            var targetStore = new RavenDBEventStore(_documentStore);
            var id = Guid.NewGuid();

            int sequenceCounter = 0;

            var events = new UncommittedEventStream(Guid.NewGuid());

            events.Append(new UncommittedEvent(Guid.NewGuid(), id, typeof(object), sequenceCounter++, 0, DateTime.UtcNow, new CustomerCreatedEvent("Foo",
                                                                                                                                         35),
                                               new Version(1, 0)));
            events.Append(new UncommittedEvent(Guid.NewGuid(), id, typeof(object), sequenceCounter++, 0, DateTime.UtcNow, new CustomerNameChanged(
                                                                                                                    "Name" + sequenceCounter),
                                               new Version(1, 0)));
            events.Append(new UncommittedEvent(Guid.NewGuid(), id, typeof(object), sequenceCounter++, 0, DateTime.UtcNow, new CustomerNameChanged(
                                                                                                                    "Name" + sequenceCounter),
                                               new Version(1, 0)));
            events.Append(new UncommittedEvent(Guid.NewGuid(), id, typeof(object), sequenceCounter++, 0, DateTime.UtcNow, new CustomerNameChanged(
                                                                                                                    "Name" + sequenceCounter),
                                               new Version(1, 0)));

            targetStore.Store(events);

            var result = targetStore.ReadFrom(id, long.MinValue, long.MaxValue);
            result.Count().Should().Be(events.Count());
            result.First().EventIdentifier.Should().Be(events.First().EventIdentifier);

            var streamList = events.ToList();
            var resultList = result.ToList();

            for (int i = 0; i < resultList.Count; i++)
            {
                Assert.IsTrue(AreEqual(streamList[i], resultList[i]));
            }
        }
Ejemplo n.º 11
0
        public void Saving_event_source_while_there_is_a_newer_event_source_should_throw_concurency_exception()
        {
            var targetStore = new RavenDBEventStore(_documentStore);
            var id = Guid.NewGuid();

            int sequenceCounter = 0;

            var events = new SourcedEvent[]
                             {
                                 new CustomerCreatedEvent(Guid.NewGuid(), id, sequenceCounter++, DateTime.UtcNow, "Foo",
                                                          35),
                                 new CustomerNameChanged(Guid.NewGuid(), id, sequenceCounter++, DateTime.UtcNow,
                                                         "Name" + sequenceCounter)
                             };

            var eventSource = MockRepository.GenerateMock<IEventSource>();
            eventSource.Stub(e => e.EventSourceId).Return(id).Repeat.Any();
            eventSource.Stub(e => e.InitialVersion).Return(0).Repeat.Any();
            eventSource.Stub(e => e.Version).Return(events.Length).Repeat.Any();
            eventSource.Stub(e => e.GetUncommittedEvents()).Return(events).Repeat.Any();

            targetStore.Save(eventSource);

            Action act = () => targetStore.Save(eventSource);
            act.ShouldThrow<ConcurrencyException>();
        }
        public void Saving_event_source_while_there_is_a_newer_event_source_should_throw_concurency_exception()
        {
            var targetStore = new RavenDBEventStore(_documentStore);
            var id = Guid.NewGuid();

            int sequenceCounter = 0;

            var events = new UncommittedEventStream(Guid.NewGuid());

            events.Append(new UncommittedEvent(Guid.NewGuid(), id, sequenceCounter++, 0, DateTime.UtcNow, new CustomerCreatedEvent("Foo",
                                                                                                                                   35),
                                               new Version(1, 0)));
            events.Append(new UncommittedEvent(Guid.NewGuid(), id, sequenceCounter++, 0, DateTime.UtcNow, new CustomerNameChanged(
                                                                                                              "Name" + sequenceCounter),
                                               new Version(1, 0)));
            
            targetStore.Store(events);

            Action act = () => targetStore.Store(events);
            act.ShouldThrow<ConcurrencyException>();
        }