public void DeleteAsync_NotValidId_ThrowsArgumentNullException(string id) { var repositoryFactoryMock = new Mock <IProductRepositoryFactory>(); repositoryFactoryMock.Setup(factory => factory.Get()).Returns(GetRepository()); var handler = new ProductCommandsHandler(repositoryFactoryMock.Object); Assert.ThrowsAsync <ArgumentException>(async() => await handler.DeleteAsync(id)); }
public async Task DeleteAsync_ValidId_ReturnsRepositoryDeleteResult(string id, bool repositoryResult) { var repositoryMock = new Mock <IProductRepository>(); repositoryMock.Setup(repository => repository.DeleteAsync(id)).ReturnsAsync(repositoryResult); repositoryMock.Setup(repository => repository.UnitOfWork).Returns(GetUnitOfWork()); var repositoryFactoryMock = new Mock <IProductRepositoryFactory>(); repositoryFactoryMock.Setup(factory => factory.Get()).Returns(repositoryMock.Object); var handler = new ProductCommandsHandler(repositoryFactoryMock.Object); var result = await handler.DeleteAsync(id); Assert.AreEqual(repositoryResult, result); }
public void DeleteAsync_OnRepositoryException_ThrowSameException(string id) { var exception = new Exception(); var repositoryMock = new Mock <IProductRepository>(); repositoryMock.Setup(repository => repository.DeleteAsync(id)).ThrowsAsync(exception); var repositoryFactoryMock = new Mock <IProductRepositoryFactory>(); repositoryFactoryMock.Setup(factory => factory.Get()).Returns(repositoryMock.Object); var handler = new ProductCommandsHandler(repositoryFactoryMock.Object); var result = Assert.ThrowsAsync(exception.GetType(), async() => await handler.DeleteAsync(id)); Assert.AreSame(exception, result); }