private void VerifyAllMocks <T>(T message, Audit.Api.Client.Models.Audit auditMessage) { Mock.Get(_mockLogger).VerifyAll(); Mock.Get(_mockServiceBusMessagingService) .Verify(sbs => sbs.SendAsBinaryXmlMessageAsync(ItIs.EquivalentTo(message), It.Is <IDictionary <string, string> >(m => m["messageType"] == typeof(T).FullName)), Times.Once); Mock.Get(_mockAuditService) .Verify(a => a.AuditAsync(ItIs.EquivalentTo(auditMessage)), Times.Once); }
public async Task NotifyContractIsReadyToSignTestAsync() { // Arrange _dummyContract.Status = ContractStatus.PublishedToProvider; var expectedMessage = new SFS.ContractReadyToSignEmailMessage { ContractNumber = _dummyContract.ContractNumber, Ukprn = _dummyContract.Ukprn, VersionNumber = _dummyContract.ContractVersion }; var expectedAuditMessage = new Audit.Api.Client.Models.Audit { Action = Audit.Api.Client.Enumerations.ActionType.ContractNotificationForwarded, Message = $"A contract notification has been forwarded to the [MessageProcessor] by [{nameof(ContractStatusChangePublisher.NotifyContractIsReadyToSignAsync)}] for contract [{_dummyContract.ContractNumber}] Version [{_dummyContract.ContractVersion}] with the status of [{_dummyContract.Status}]", Severity = 0, Ukprn = _dummyContract.Ukprn, User = "******" }; var publisher = new ContractStatusChangePublisher(_mockServiceBusMessagingService, _mockAuditService, _mockLogger); // Act await publisher.NotifyContractIsReadyToSignAsync(_dummyContract); // Assert VerifyAllMocks(expectedMessage, expectedAuditMessage); }