public async Task ThenAnErrorIsLoggedWhenTheAuditServiceThrowsAnException() { //Arrange var easAuditMessage = new EasAuditMessage { Description = "Some stuff", RelatedEntities = new List <Entity> { new Entity { Id = "12345", Type = "test" } }, ChangedProperties = new List <PropertyUpdate> { new PropertyUpdate { NewValue = "New", PropertyName = "Name" } } }; _auditMessageFactory.Setup(x => x.Build()).Returns(new AuditMessage()); _auditApiClient.Setup(x => x.Audit(It.IsAny <AuditMessage>())).Throws(new Exception()); //Act await _auditService.SendAuditMessage(easAuditMessage); //Assert _logger.Verify(x => x.Error(It.IsAny <Exception>(), It.IsAny <string>())); }
public async Task ThenTheServiceIsCalledWithTheBuildAuditMessage() { //Arrange var easAuditMessage = new EasAuditMessage { Description = "Some stuff", RelatedEntities = new List <Entity> { new Entity { Id = "12345", Type = "test" } }, ChangedProperties = new List <PropertyUpdate> { new PropertyUpdate { NewValue = "New", PropertyName = "Name" } } }; _auditMessageFactory.Setup(x => x.Build()).Returns(new AuditMessage()); //Act await _auditService.SendAuditMessage(easAuditMessage); //Assert _auditApiClient.Verify(x => x.Audit(It.Is <AuditMessage>(c => c.Description.Equals("Some stuff") && c.ChangedProperties.SingleOrDefault(y => y.NewValue.Equals("New") && y.PropertyName.Equals("Name")) != null && c.RelatedEntities.SingleOrDefault(y => y.Id.Equals("12345") && y.Type.Equals("test")) != null )), Times.Once); }
public async Task SendAuditMessage(EasAuditMessage message) { try { var auditMessage = _factory.Build(); auditMessage.Category = message.Category; auditMessage.Description = message.Description; auditMessage.ChangedProperties = message.ChangedProperties; auditMessage.RelatedEntities = message.RelatedEntities; auditMessage.AffectedEntity = message.AffectedEntity; await _auditApiClient.Audit(auditMessage); } catch (Exception exception) { _logger.Error(exception, "An error occurred when calling the audit service."); } }