예제 #1
0
        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));
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }