public async Task ThenTheAuditCommandIsCalledWhenTheCommandIsValid() { //Arrange var command = new RemovePayeFromAccountCommand(HashedAccountId, PayeScheme, UserRef.ToString(), true, OrganisationName); //Act await _handler.Handle(command); //Assert _mediator.Verify(x => x.SendAsync(It.Is <CreateAuditCommand>(c => c.EasAuditMessage.ChangedProperties.SingleOrDefault(y => y.PropertyName.Equals("AccountId") && y.NewValue.Equals(AccountId.ToString())) != null && c.EasAuditMessage.ChangedProperties.SingleOrDefault(y => y.PropertyName.Equals("UserId") && y.NewValue.Equals(UserRef.ToString())) != null && c.EasAuditMessage.ChangedProperties.SingleOrDefault(y => y.PropertyName.Equals("PayeRef") && y.NewValue.Equals(PayeScheme)) != null))); _mediator.Verify(x => x.SendAsync(It.Is <CreateAuditCommand>(c => c.EasAuditMessage.Description.Equals($"User {UserRef.ToString()} has removed PAYE schema {PayeScheme} from account {AccountId}")))); _mediator.Verify(x => x.SendAsync(It.Is <CreateAuditCommand>(c => c.EasAuditMessage.RelatedEntities.SingleOrDefault(y => y.Id.Equals(AccountId.ToString()) && y.Type.Equals("Account")) != null))); _mediator.Verify(x => x.SendAsync(It.Is <CreateAuditCommand>(c => c.EasAuditMessage.AffectedEntity.Id.Equals(PayeScheme) && c.EasAuditMessage.AffectedEntity.Type.Equals("Paye")))); }
public async Task ThenTheAuditCommandIsCalledWhenTheCommandIsValid() { //Arrange var accountId = 123456; var command = new RemovePayeFromAccountCommand { UserId = "54256", HashedAccountId = "ABC123", PayeRef = "3674826874623", RemoveScheme = true }; _hashingService.Setup(x => x.DecodeValue(It.IsAny <string>())).Returns(accountId); //Act await _handler.Handle(command); //Assert _mediator.Verify(x => x.SendAsync(It.Is <CreateAuditCommand>(c => c.EasAuditMessage.ChangedProperties.SingleOrDefault(y => y.PropertyName.Equals("AccountId") && y.NewValue.Equals(accountId.ToString())) != null && c.EasAuditMessage.ChangedProperties.SingleOrDefault(y => y.PropertyName.Equals("UserId") && y.NewValue.Equals(command.UserId)) != null && c.EasAuditMessage.ChangedProperties.SingleOrDefault(y => y.PropertyName.Equals("PayeRef") && y.NewValue.Equals(command.PayeRef)) != null))); _mediator.Verify(x => x.SendAsync(It.Is <CreateAuditCommand>(c => c.EasAuditMessage.Description.Equals($"User {command.UserId} has removed PAYE schema {command.PayeRef} from account {accountId}")))); _mediator.Verify(x => x.SendAsync(It.Is <CreateAuditCommand>(c => c.EasAuditMessage.RelatedEntities.SingleOrDefault(y => y.Id.Equals(accountId.ToString()) && y.Type.Equals("Account")) != null))); _mediator.Verify(x => x.SendAsync(It.Is <CreateAuditCommand>(c => c.EasAuditMessage.AffectedEntity.Id.Equals(command.PayeRef) && c.EasAuditMessage.AffectedEntity.Type.Equals("Paye")))); }
public async Task ThenAnEventIsPublishedToNofifyThePayeSchemeHasBeenRemoved() { //Arrange var command = new RemovePayeFromAccountCommand(HashedAccountId, PayeScheme, UserRef.ToString(), true, OrganisationName); //Act await _handler.Handle(command); //Assert _payeSchemeEventFactory.Verify(x => x.CreatePayeSchemeRemovedEvent(command.HashedAccountId, command.PayeRef)); _genericEventFactory.Verify(x => x.Create(It.IsAny <PayeSchemeRemovedEvent>()), Times.Once); _mediator.Verify(x => x.SendAsync(It.IsAny <PublishGenericEventCommand>())); }
public async Task ThenAMessageIsQueuedForPayeSchemeRemoved() { //Arrange var command = new RemovePayeFromAccountCommand(HashedAccountId, PayeScheme, UserRef.ToString(), true, OrganisationName); //Act await _handler.Handle(command); //Assert _eventPublisher.Events.Should().HaveCount(1); var message = _eventPublisher.Events.OfType <DeletedPayeSchemeEvent>().Single(); message.AccountId.Should().Be(AccountId); message.OrganisationName.Should().Be(OrganisationName); message.PayeRef.Should().Be(PayeScheme); message.UserName.Should().Be(UserName); message.UserRef.Should().Be(UserRef); }
public async Task ThenAnEventIsPublishedToNofifyThePayeSchemeHasBeenRemoved() { //Arrange var command = new RemovePayeFromAccountCommand { UserId = "54256", HashedAccountId = "ABC123", PayeRef = "3674826874623", RemoveScheme = true }; //Act await _handler.Handle(command); //Assert _payeSchemeEventFactory.Verify(x => x.CreatePayeSchemeRemovedEvent(command.HashedAccountId, command.PayeRef)); _genericEventFactory.Verify(x => x.Create(It.IsAny <PayeSchemeRemovedEvent>()), Times.Once); _mediator.Verify(x => x.SendAsync(It.IsAny <PublishGenericEventCommand>())); }