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."); }
/// <summary> /// Handles the specified <see cref="CatchLikedEvent"/> domain event. /// </summary> /// <param name="domainEvent">The domain event.</param> public void Handle(CatchLikedEvent domainEvent) { Data.Catch @catch = this.readModel.Catches.Find(domainEvent.AggregateRootId); @catch.Likes = domainRepository.GetById <Catch>(domainEvent.AggregateRootId).Likes; this.readModel.SaveChanges(); }
/// <summary> /// Handles the <see cref="CatchLikedEvent"/>. /// </summary> /// <param name="domainEvent">The domain event.</param> public void OnCatchLiked(CatchLikedEvent domainEvent) { this.Likes += 1; }