public void AddsAuthorizationToRepository_RaisesIntegrationEvent() { var repository = new Mock <IUserAuthorizationRepository>(MockBehavior.Strict); repository.Setup(r => r.AddAsync(It.Is <AccountingGroups.Domain.UserAuthorization>(p => ValidateEquality(p)))).Returns(Task.CompletedTask).Verifiable(); repository.Setup(r => r.SaveChanges()).Returns(Task.CompletedTask).Verifiable(); var busPublisher = new Mock <IBusPublisher>(MockBehavior.Strict); busPublisher.Setup(p => p.Publish(It.Is <IAccountingGroupUserAuthorizationCreated>(e => ValidateEquality(e)))).Returns(Task.CompletedTask).Verifiable(); var userVerifier = new Mock <IUserVerifier>(MockBehavior.Strict); userVerifier.Setup(v => v.AssertExists(UserId)).Returns(Task.CompletedTask).Verifiable(); var agVerifier = new Mock <IAccountingGroupVerifier>(MockBehavior.Strict); agVerifier.Setup(v => v.AssertExists(AccountingGroupId)).Returns(Task.CompletedTask).Verifiable(); var handler = new CreateUserAuthorizationHandler(repository.Object, busPublisher.Object, agVerifier.Object, userVerifier.Object); var result = handler.HandleAsync(Cmd, new Mock <ICorrelationContext>().Object).GetAwaiter().GetResult(); Assert.IsTrue(result.Successful); repository.Verify(); busPublisher.Verify(); agVerifier.Verify(); userVerifier.Verify(); }
public void AddsAuthorizationToRepository_RaisesIntegrationEvent() { var repository = new Mock <IUserAuthorizationRepository>(MockBehavior.Strict); repository.Setup(r => r.AddAsync(It.Is <Domain.UserAuthorization>(p => ValidateEquality(p)))).Returns(Task.CompletedTask).Verifiable(); repository.Setup(r => r.SaveChanges()).Returns(Task.CompletedTask).Verifiable(); var busPublisher = new Mock <IBusPublisher>(MockBehavior.Strict); busPublisher.Setup(p => p.Publish <IPointOfSaleUserAuthorizationCreated>(It.Is <IPointOfSaleUserAuthorizationCreated>(e => ValidateEquality(e)))).Returns(Task.CompletedTask).Verifiable(); var handler = new CreateUserAuthorizationHandler(repository.Object, busPublisher.Object); handler.HandleAsync(Cmd, new Mock <ICorrelationContext>().Object).GetAwaiter().GetResult(); repository.Verify(); busPublisher.Verify(); }