public async void DeleteTest() { // Arrange var mockLogManager = new Mock <ILogManager>(); var mockContactRepository = new Mock <IContactRepository>(); var mockContact = new Mock <IContact>(); var mockContactValidator = new Mock <IContactValidator>(); var mockAddressApplicationService = new Mock <IAddressApplicationService>(); // Setup mock methods/properties mockContact.Setup(c => c.Id).Returns(It.IsAny <int>()); mockContactRepository.Setup(x => x.DeleteAsync(It.IsAny <int>())) .Returns(Task.FromResult(new DeleteResponse { Message = "Successful." })); // Act var sut = new ContactApplicationService( mockLogManager.Object, mockContactRepository.Object, mockContactValidator.Object, mockAddressApplicationService.Object); var response = await sut.DeleteAsync(It.IsAny <int>()); // Assert response.IsSuccessful.Should().BeTrue(); response.Errors.Count.Should().Be(0); response.Message.Should().NotBeNullOrEmpty(); // Verify the application service is calling the correct repository method. mockContactRepository.Verify(x => x.DeleteAsync(It.IsAny <int>())); }
public async void DeleteErrorTest() { // Arrange var mockLogManager = new Mock <ILogManager>(); var mockContactRepository = new Mock <IContactRepository>(); var mockContact = new Mock <IContact>(); var mockContactValidator = new Mock <IContactValidator>(); var mockAddressApplicationService = new Mock <IAddressApplicationService>(); // Setup mock methods/properties mockContact.Setup(c => c.Id).Returns(It.IsAny <int>()); mockContactRepository.Setup(x => x.DeleteAsync(It.IsAny <int>())) .Throws(new Exception()); // Act var sut = new ContactApplicationService( mockLogManager.Object, mockContactRepository.Object, mockContactValidator.Object, mockAddressApplicationService.Object); var response = await sut.DeleteAsync(It.IsAny <int>()); // Assert response.IsSuccessful.Should().BeFalse(); response.Errors.Count.Should().BeGreaterThan(0); response.Message.Should().NotBeNullOrEmpty(); // Verify the application service is calling the correct repository method. mockContactRepository.Verify(x => x.DeleteAsync(It.IsAny <int>())); // Verify the application service is logging the error. mockLogManager.Verify(x => x.LogError(It.IsAny <Exception>(), It.IsAny <string>())); }