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)); }
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); }
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); }
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); }
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); }