public void Sets_the_catch_read_model_likes_value_to_that_of_the_domain_model() { // Arrange var catchLikedEvent = new CatchLikedEvent { AggregateRootId = Guid.NewGuid() }; var associatedCatch = new DaveScriven.CodeSample.Domain.Catch { Likes = 10 }; var catchReadModel = new Catch { CatchId = catchLikedEvent.AggregateRootId, Likes = 9 }; var readModelMock = new Mock <IFishLogReadModel>(); var dbSetMock = new Mock <IDbSet <Catch> >(); var domainRepositoryStub = new Mock <IDomainRepository>(); readModelMock.Setup(m => m.Catches).Returns(dbSetMock.Object); domainRepositoryStub.Setup(r => r.GetById <DaveScriven.CodeSample.Domain.Catch>(catchLikedEvent.AggregateRootId)).Returns(associatedCatch); dbSetMock.Setup(s => s.Find(catchLikedEvent.AggregateRootId)).Returns(catchReadModel); var denormalizer = new CatchesReadModelDenormalizer(readModelMock.Object, domainRepositoryStub.Object); // Act denormalizer.Handle(catchLikedEvent); // Assert Assert.That(catchReadModel.Likes, Is.EqualTo(associatedCatch.Likes)); readModelMock.Verify(m => m.SaveChanges(), "The changes were not saved to the read model."); }
public void Adds_a_new_catch_to_the_read_model() { // Arrange var readModelMock = new Mock <IFishLogReadModel>(); var dbSetMock = new Mock <IDbSet <Catch> >(); var domainRepositoryDummy = new Mock <IDomainRepository>().Object; readModelMock.Setup(m => m.Catches).Returns(dbSetMock.Object); var catchLoggedEvent = new CatchLoggedEvent { Species = "Test", Depth = 10, Length = 100, Latitude = 10, Longitude = 10 }; var denormalizer = new CatchesReadModelDenormalizer(readModelMock.Object, domainRepositoryDummy); // Act denormalizer.Handle(catchLoggedEvent); // Assert dbSetMock.Verify(s => s.Add(It.Is <Catch>(c => c.Species == catchLoggedEvent.Species && c.Length == catchLoggedEvent.Length && c.Depth == catchLoggedEvent.Depth && c.Latitude == catchLoggedEvent.Latitude && c.Longitude == catchLoggedEvent.Longitude)), "The saved catch does not match the catch from the event."); readModelMock.Verify(m => m.SaveChanges(), "The changes were not saved to the read model."); }