Exemple #1
0
        public void Add_NullObject_ShouldThrowException()
        {
            // Arrange
            IEventStore <Guid, Event <Guid> > eventStore = CreateDummyEventStore();
            IEventSourcedRepository <FakeEventAggregate, Guid> repository =
                new MemoryEventAggregateRepository <FakeEventAggregate>(eventStore);

            // Act, Assert
            Assert.ThrowsAsync <ArgumentNullException>(() => repository.SaveAsync(null));
        }
Exemple #2
0
        public async void GetById_OnEmptyRepository_ShouldReturnNull()
        {
            // Arrange
            Mock <IEventStore <Guid, Event <Guid> > >          eventStoreMock = CreateEventStoreMock();
            IEventStore <Guid, Event <Guid> >                  eventStore     = eventStoreMock.Object;
            IEventSourcedRepository <FakeEventAggregate, Guid> repository     =
                new MemoryEventAggregateRepository <FakeEventAggregate>(eventStore);

            // Act
            FakeEventAggregate result = await repository.FindByIdAsync(Guid.NewGuid());

            // Assert
            Assert.Null(result);
        }
Exemple #3
0
        public void GetById_OnEmptyRepository_ShouldCallEventStore()
        {
            // Arrange
            Mock <IEventStore <Guid, Event <Guid> > >          eventStoreMock = CreateEventStoreMock();
            IEventStore <Guid, Event <Guid> >                  eventStore     = eventStoreMock.Object;
            IEventSourcedRepository <FakeEventAggregate, Guid> repository     =
                new MemoryEventAggregateRepository <FakeEventAggregate>(eventStore);

            // Act
            repository.FindByIdAsync(Guid.NewGuid());

            // Assert
            eventStoreMock.Verify(m => m.GetEventsById(It.IsAny <Guid>()), Times.Once);
        }
Exemple #4
0
        public async void GetById_WithExistingid_ShouldReturnNotNull()
        {
            // Arrange
            Guid eventAggregateId = Guid.NewGuid();
            Mock <IEventStore <Guid, Event <Guid> > >          eventStoreMock = CreateEventStoreMock(eventAggregateId);
            IEventStore <Guid, Event <Guid> >                  eventStore     = eventStoreMock.Object;
            IEventSourcedRepository <FakeEventAggregate, Guid> repository     =
                new MemoryEventAggregateRepository <FakeEventAggregate>(eventStore);

            // Act
            FakeEventAggregate result = await repository.FindByIdAsync(eventAggregateId);

            // Assert
            Assert.NotNull(result);
            Assert.Equal(eventAggregateId, result.EntityId);
        }
Exemple #5
0
        public async void Add_FakeObject_ShouldBeSaved()
        {
            // Arrange
            Mock <IEventStore <Guid, Event <Guid> > > eventStoreMock = CreateEventStoreMock();
            IEventStore <Guid, Event <Guid> >         eventStore     = eventStoreMock.Object;
            FakeEventAggregate fakeEventAggregate = CreateDirtyFake(Guid.NewGuid());
            IEventSourcedRepository <FakeEventAggregate, Guid> repository =
                new MemoryEventAggregateRepository <FakeEventAggregate>(eventStore);

            // Act
            bool result = await repository.SaveAsync(fakeEventAggregate);

            // Assert
            Assert.True(result);
            eventStoreMock.Verify(m => m.SaveEvents(It.IsAny <Guid>(), It.IsAny <IReadOnlyCollection <Event <Guid> > >()), Times.Once);
        }