public async Task <int> Create(FornecedorRequestModel request) { var fornecedor = new FornecedorBuilder() .ComRazaoSocial(request.RazaoSocial) .ComNomeFantasia(request.NomeFantasia) .ComTelefone(request.Telefone) .ComEmail(request.Email) .ComCNPJ(request.CNPJ) .ComRua(request.Endereco.Rua) .ComNumero(request.Endereco.Numero) .ComComplemento(request.Endereco.Complemento) .ComBairro(request.Endereco.Bairro) .ComCEP(request.Endereco.CEP) .ComCidade(request.Endereco.Cidade) .ComUF(request.Endereco.UF) .Build(); fornecedor.Validate(); var fornecedorJaExiste = await _repository.VerificarSeFornecedorJaExiste(fornecedor.CNPJ); if (fornecedorJaExiste) { throw new ArgumentException("Fornecedor já existe."); } await _repository.Create(fornecedor); return(fornecedor.Id); }
public async Task Estourar_Excecao_FornecedorJaExiste_Create() { var fornecedorRequestModel = new FornecedorRequestModel() { Endereco = new EnderecoTests() { Rua = "Carmello Bogo", Cidade = "Blumenau", Bairro = "Ponta Aguda", CEP = "89050020", Numero = "270", Complemento = "502", UF = "SC", }, RazaoSocial = "Casas Bahia", CNPJ = "89.096.092/0001-69", NomeFantasia = "Casas Bahia a casa da familia", Telefone = "47991085345", Email = "*****@*****.**", }; _fornecedorRepository.VerificarSeFornecedorJaExiste(fornecedorRequestModel.CNPJ).Returns(true); var ex = await Record.ExceptionAsync(() => _fornecedorServices.Create(fornecedorRequestModel)); ex.Should().BeOfType <ArgumentException>(); ex.Message.Should().Be("Fornecedor já existe."); }
public async Task Salvar_Fornecedor_Create() { FornecedorRequestModel fornecedorRequestModel = new FornecedorRequestModel() { Endereco = new EnderecoTests() { Rua = "Carmello Bogo", Cidade = "Blumenau", Bairro = "Ponta Aguda", CEP = "89050020", Numero = "270", Complemento = "502", UF = "SC", }, RazaoSocial = "Barbara Cosmeticos", CNPJ = "89.096.092/0001-69", NomeFantasia = "Barbara Comesticos LTDa", Telefone = "47991085345", Email = "*****@*****.**", }; await _fornecedorServices.Create(fornecedorRequestModel); await _fornecedorRepository.Received(1).Create(Arg.Any <FornecedorEntity>()); }
public async Task Estourar_Excecao_GetByID() { var fornecedorID = 1; var fornecedorRequestModel = new FornecedorRequestModel() { Endereco = new EnderecoTests() { Rua = "Carmello Bogo", Cidade = "Blumenau", Bairro = "Ponta Aguda", CEP = "89050020", Numero = "270", Complemento = "502", UF = "SC", }, RazaoSocial = "Casas Bahia", CNPJ = "89.096.092/0001-69", NomeFantasia = "Casas Bahia a casa da familia", Telefone = "47991085345", Email = "*****@*****.**", }; var ex = await Record.ExceptionAsync(() => _fornecedorServices.GetById(fornecedorID)); ex.Should().BeOfType <ArgumentException>(); ex.Message.Should().Be("Id do fornecedor inexistente."); }
public async Task Atualizar_Fornecedor_Update() { var fornecedorId = 1; var model = new FornecedorRequestModel() { Endereco = new EnderecoTests() { Rua = "Carmello Bogo", Cidade = "Blumenau", Bairro = "Ponta Aguda", CEP = "89050020", Numero = "270", Complemento = "502", UF = "SC", }, RazaoSocial = "Casas Bahia", CNPJ = "89.096.092/0001-69", NomeFantasia = "Casas Bahia a casa da familia", Telefone = "47991085345", Email = "*****@*****.**", }; var fornecedor = new FornecedorBuilderTest() .ComRazaoSocial("barbara Cosmeticos") .ComCNPJ("97.598.988/0001-74") .ComNomeFantasia("Claudio") .ComBairro("Ponta Aguda") .ComCidade("Blumenau") .ComRua("rua Paraguay") .ComNumero("270") .ComComplemento("Apto 502") .ComUF("SC") .ComCEP("89050020") .ComEmail("*****@*****.**") .ComTelefone("433222335") .ComId(fornecedorId) .Build(); _fornecedorRepository.GetById(fornecedorId).Returns(fornecedor); _fornecedorRepository.ExisteFornecedorComEsseCnpj(fornecedor.CNPJ, fornecedorId).Returns(false); var fornecedorRetornado = await _fornecedorServices.Update(fornecedorId, model); await _fornecedorRepository.Received(1).Update(Arg.Is <FornecedorEntity>(args => args.RazaoSocial == model.RazaoSocial && args.CNPJ == model.CNPJ && args.NomeFantasia == model.NomeFantasia && args.Endereco.Rua == model.Endereco.Rua && args.Endereco.Bairro == model.Endereco.Bairro && args.Endereco.Cidade == model.Endereco.Cidade && args.Endereco.Numero == model.Endereco.Numero && args.Endereco.Complemento == model.Endereco.Complemento && args.Endereco.UF == model.Endereco.UF && args.Endereco.CEP == model.Endereco.CEP && args.Telefone == model.Telefone && args.Email == model.Email)); }
public async Task Estourar_Excecao_CnpjJaExiste_Update() { var fornecedorId = 1; var fornecedorRequestModel = new FornecedorRequestModel() { Endereco = new EnderecoTests() { Rua = "Carmello Bogo", Cidade = "Blumenau", Bairro = "Ponta Aguda", CEP = "89050020", Numero = "270", Complemento = "502", UF = "SC", }, RazaoSocial = "Casas Bahia", CNPJ = "89.096.092/0001-69", NomeFantasia = "Casas Bahia a casa da familia", Telefone = "47991085345", Email = "*****@*****.**", }; var fornecedor = new FornecedorBuilderTest() .ComRazaoSocial("barbara Cosmeticos") .ComCNPJ("97.598.988/0001-74") .ComNomeFantasia("Claudio") .ComBairro("Ponta Aguda") .ComCidade("Blumenau") .ComRua("rua Paraguay") .ComNumero("270") .ComComplemento("Apto 502") .ComUF("SC") .ComCEP("89050020") .ComEmail("*****@*****.**") .ComTelefone("433222335") .ComId(fornecedorId) .Build(); _fornecedorRepository.GetById(fornecedorId).Returns(fornecedor); _fornecedorRepository.ExisteFornecedorComEsseCnpj(fornecedorRequestModel.CNPJ, fornecedorId).Returns(true); var ex = await Record.ExceptionAsync(() => _fornecedorServices.Update(fornecedorId, fornecedorRequestModel)); ex.Should().BeOfType <ArgumentException>(); ex.Message.Should().Be("Fornecedor não poderá ser cadastrado."); }
public async Task <IActionResult> Update([FromRoute] int id, [FromBody] FornecedorRequestModel model) { try { await _fornecedorService.Update(id, model); return(Ok("Fornecedor Atualizado com sucesso.")); } catch (FornecedorException ex) { return(BadRequest(ex.Errors)); } catch (Exception ex) { return(StatusCode(500, ex.Message)); } }
public void Validar_NomeFantasia_Caracteres(int?qtdCaracteres) { string nomeFantasia = ""; if (qtdCaracteres != null) { nomeFantasia = new string('a', Convert.ToInt32(qtdCaracteres)); } var fornecedor = new FornecedorRequestModel() { Endereco = new EnderecoTests() { Rua = "Rua Paraguay", Cidade = "Blumenau", Bairro = "Ponta Aguda", CEP = "89050020", Numero = "270", Complemento = "502", UF = "SC", }, RazaoSocial = "Barbara Comesticos", NomeFantasia = nomeFantasia, CNPJ = "74.358.222/0001-17", Telefone = "47991085945", Email = "*****@*****.**", }; var ex = Assert.ThrowsAsync <ValidationException>(async() => await _fornecedorService.Create(fornecedor)); if (qtdCaracteres == null) { ex.Result.Message.Should().Contain("Nome Fantasia não pode estar vazio."); } else if (qtdCaracteres == 51) { ex.Result.Message.Should().Contain("Nome Fantasia não pode conter mais de 50 caracteres."); } else if (qtdCaracteres == 9) { ex.Result.Message.Should().Contain("Nome Fantasia deve conter mais de 10 caracteres."); } }
public async Task <IActionResult> Create([FromBody] FornecedorRequestModel fornecedorRequest) { try { int id = await _fornecedorService.Create(fornecedorRequest); return(CreatedAtRoute(fornecedorRequest, id)); } catch (FornecedorException ex) { return(BadRequest(ex.Errors)); } catch (DbUpdateException ex) { return(StatusCode(500, ex.Message)); } catch (Exception ex) { return(StatusCode(500, ex.Message)); } }
public void Validar_Email_Caracteres(string emailTeste) { string email = ""; if (emailTeste != "x") { email = emailTeste; } var fornecedor = new FornecedorRequestModel() { Endereco = new EnderecoTests() { Rua = "Rua Paraguay", Cidade = "Blumenau", Bairro = "Ponta Aguda", CEP = "89050020", Numero = "270", Complemento = "502", UF = "SC", }, RazaoSocial = "Barbara Comesticos", NomeFantasia = "Barbaras Comesticos e Batom", CNPJ = "74.358.222/0001-17", Telefone = "47991085945", Email = email, }; var ex = Assert.ThrowsAsync <ValidationException>(async() => await _fornecedorService.Create(fornecedor)); if (emailTeste == "x") { ex.Result.Message.Should().Contain("Email não pode ser vazio."); } else if (emailTeste == "mabelksouza.com") { ex.Result.Message.Should().Contain("Email incorreto. EX:[email protected]."); } }
public void Validar_CNPJ_Caracteres(string cnpjTeste) { var cnpj = ""; if (cnpjTeste != "x") { cnpj = cnpjTeste; } var fornecedor = new FornecedorRequestModel() { Endereco = new EnderecoTests() { Rua = "Rua Paraguay", Cidade = "Blumenau", Bairro = "Ponta Aguda", CEP = "89050020", Numero = "270", Complemento = "502", UF = "SC", }, RazaoSocial = "Barbara Comesticos", NomeFantasia = "Barbaras Comesticos e Batom", CNPJ = cnpj, Telefone = "47991085945", Email = "*****@*****.**", }; var ex = Assert.ThrowsAsync <ValidationException>(async() => await _fornecedorService.Create(fornecedor)); if (cnpjTeste == "x") { ex.Result.Message.Should().Contain("Cnpj não pode estar vazio."); } else if (cnpjTeste == "00000/0001-17") { ex.Result.Message.Should().Contain("Cnpj incorreto."); } }
public async Task <FornecedorEntity> Update(int id, FornecedorRequestModel request) { var fornecedor = await _repository.GetById(id); if (fornecedor == null) { throw new ArgumentException("Id invalido."); } var fornecedorRequestModel = new FornecedorBuilder() .ComRazaoSocial(request.RazaoSocial) .ComNomeFantasia(request.NomeFantasia) .ComTelefone(request.Telefone) .ComEmail(request.Email) .ComCNPJ(request.CNPJ) .ComRua(request.Endereco.Rua) .ComNumero(request.Endereco.Numero) .ComComplemento(request.Endereco.Complemento) .ComBairro(request.Endereco.Bairro) .ComCEP(request.Endereco.CEP) .ComCidade(request.Endereco.Cidade) .ComUF(request.Endereco.UF); fornecedor.Update(fornecedorRequestModel); fornecedor.Validate(); var verificandoCnpj = await _repository.ExisteFornecedorComEsseCnpj(fornecedor.CNPJ, fornecedor.Id); if (verificandoCnpj) { throw new ArgumentException("Fornecedor não poderá ser cadastrado."); } await _repository.Update(fornecedor); return(fornecedor); }