public void QuandoOcorrerErroAoAtualizarUmaListaDeProdutosDeveRetornarStatusDeErro() { var cadastroProdutoFornecedorMock = new Mock <ICadastroProdutoFornecedor>(MockBehavior.Strict); cadastroProdutoFornecedorMock.Setup(x => x.AtualizarFornecedoresDoProduto(It.IsAny <string>(), It.IsAny <string[]>())) .Throws(new Exception("Ocorreu um erro")); var produtoFornecedorApiController = new ProdutoFornecedorApiController(cadastroProdutoFornecedorMock.Object); var produtoFornecedorCadastroVm = new ProdutoFornecedorCadastroVm() { CodigoProduto = "PROD0001", CodigoFornecedor = "FORNEC0001", }; produtoFornecedorApiController.Request = new HttpRequestMessage(HttpMethod.Post, "http://localhost/ProdutoFornecedorApi/AtualizarFonecedoresDoProduto"); produtoFornecedorApiController.Request.Properties.Add(HttpPropertyKeys.HttpConfigurationKey, new HttpConfiguration()); var resposta = produtoFornecedorApiController.AtualizaFornecedoresDoProduto(new ListaProdutoFornecedor() { produtoFornecedorCadastroVm }); var apiResponseMessage = (ApiResponseMessage)((ObjectContent)(resposta.Content)).Value; Assert.AreEqual(HttpStatusCode.OK, resposta.StatusCode); Assert.AreEqual("500", apiResponseMessage.Retorno.Codigo); cadastroProdutoFornecedorMock.Verify(x => x.AtualizarFornecedoresDoProduto(It.IsAny <string>(), It.IsAny <string[]>()), Times.Once()); }
public void QuandoAtualizaUmaListaComMaisDeUmProdutoDeveRetornarOkParaProdutosAtualizadosComSucessoEErroParaProdutosOndeOcorreuErro() { var cadastroProdutoFornecedorMock = new Mock <ICadastroProdutoFornecedor>(MockBehavior.Strict); cadastroProdutoFornecedorMock .Setup(x => x.AtualizarFornecedoresDoProduto(It.IsAny <string>(), It.IsAny <string[]>())) .Callback((string codigoProduto, string[] codigoDosFornecedores) => { if (codigoProduto == "PROD0002") { throw new Exception("Ocorreu erro ao atualizar o produto " + codigoProduto); } }); var produtoFornecedorApiController = new ProdutoFornecedorApiController(cadastroProdutoFornecedorMock.Object); var produtoFornecedorCadastroVm = new ProdutoFornecedorCadastroVm() { CodigoProduto = "PROD0001", CodigoFornecedor = "FORNEC0001", }; produtoFornecedorApiController.Request = new HttpRequestMessage(HttpMethod.Post, "http://localhost/ProdutoFornecedorApi/AtualizarFonecedoresDoProduto"); produtoFornecedorApiController.Request.Properties.Add(HttpPropertyKeys.HttpConfigurationKey, new HttpConfiguration()); var resposta = produtoFornecedorApiController.AtualizaFornecedoresDoProduto(new ListaProdutoFornecedor() { produtoFornecedorCadastroVm, new ProdutoFornecedorCadastroVm() { CodigoProduto = "PROD0002", CodigoFornecedor = "FORNEC0002" } }); var apiResponseMessage = (ApiResponseMessage)((ObjectContent)(resposta.Content)).Value; Assert.AreEqual(HttpStatusCode.OK, resposta.StatusCode); Assert.AreEqual("500", apiResponseMessage.Retorno.Codigo); Assert.IsTrue(apiResponseMessage.Retorno.Texto.Contains("Produto: PROD0001 - 1 fornecedores atualizados;")); Assert.IsTrue(apiResponseMessage.Retorno.Texto.Contains("Produto: PROD0002 - erro ao atualizar fornecedores: Ocorreu erro ao atualizar o produto PROD0002;")); cadastroProdutoFornecedorMock.Verify(x => x.AtualizarFornecedoresDoProduto(It.IsAny <string>(), It.IsAny <string[]>()), Times.Exactly(2)); }