public void AdicionarItem_Produto_Nao_Encontrado() { //arrange pedidoDALMock .Setup(x => x.Create("José da Silva")) .Returns(new Model.Pedido() { Id = 1000, Cliente = "José da Silva", Itens = new List <Model.ItemPedido>(), Status = Model.PedidoStatus.Aberto, Total = 0 }); KeyNotFoundException exception = new KeyNotFoundException(); produtoDALMock .Setup(x => x.Get("abc")) .Throws(exception) .Verifiable(); var pedidoManager = new PedidoManager(loggerMock.Object, pedidoDALMock.Object, produtoDALMock.Object); var pedido = pedidoManager.CriarPedido("José da Silva"); //act Action action = () => pedidoManager.AdicionarItem(pedido, "abc", 1); //assert action.Should().Throw <ProdutoNaoEncontradoException>(); produtoDALMock.Verify(); loggerMock.Verify(x => x.Error(exception.Message, exception)); }
//[ExpectedException(typeof(ApplicationException))] public void CriarPedido_Erro_BancoDeDados() { //Arrange pedidoDALmock .Setup(x => x.Create(It.IsAny <string>())) .Throws(new ApplicationException("Erro ao criar pedido no banco de dados.")) .Verifiable(); loggerMock .Setup(x => x.Error("Erro ao criar pedido no banco de dados.")) .Verifiable(); //Act PedidoManager pedidoManager = new PedidoManager(loggerMock.Object, pedidoDALmock.Object, produtoDALmock.Object); Action action = () => pedidoManager.CriarPedido("Fulano de Tal"); //Assert action.Should().Throw <ApplicationException>() .And .Message.Should().Be("Erro ao criar pedido no banco de dados."); Mock.Verify(pedidoDALmock); Mock.Verify(loggerMock); }
public void AdicionarItem_Codigo_Invalido(string codigo) { //arrange pedidoDALMock .Setup(x => x.Create("José da Silva")) .Returns(new Model.Pedido() { Id = 1000, Cliente = "José da Silva", Itens = new List <Model.ItemPedido>(), Status = Model.PedidoStatus.Aberto, Total = 0 }); var pedidoManager = new PedidoManager(loggerMock.Object, pedidoDALMock.Object, produtoDALMock.Object); var pedido = pedidoManager.CriarPedido("José da Silva"); //act Action action = () => pedidoManager.AdicionarItem(pedido, codigo, 1); //assert action.Should().Throw <ArgumentNullException>() .And .ParamName.Should().Be("codigo"); }
public ActionResult FormularioPedido(FormularioPedidoViewModel model) { Arbol arbol = ArbolManager.GetArbol(model.IdArbol); if (ModelState.IsValid) { List <Arbol> arbolesOfrecidos = new List <Arbol>(); foreach (var item in model.ArbolesSeleccionados) { arbolesOfrecidos.Add(ArbolManager.GetArbol(Int32.Parse(item))); } Pedido pedido = new Pedido { Arbol = arbol, Emisor = UsuarioManager.Get(model.Emisor), Receptor = UsuarioManager.Get(model.Receptor), Oferta = arbolesOfrecidos }; PedidoManager.Nuevo(pedido); TempData["Msg"] = "El pedido fue realizado correctamente"; return(RedirectToAction("Enviados", "Pedido")); } else { TempData["Msg"] = "No se pudo realizar el pedido"; return(RedirectToAction("PedirTrueque", "Trueque", new { id = arbol.Id })); } }
public void CriarPedido_Cliente_Nao_Informado(string cliente) { //arrange var pedidoManager = new PedidoManager(loggerMock.Object, pedidoDALMock.Object, produtoDALMock.Object); //act pedidoManager.CriarPedido(cliente); }
public void Ctor_When_ProdutoDAL_Is_Null_Should_Throw_Exception() { //arrange //act Action action = () => pedidoManager = new PedidoManager(mockPedidoDAL.Object, null); //assert action.Should().Throw <ArgumentNullException>() .Which.ParamName.Should().Be("produtoDAL"); }
public void AdicionarItem_Pedido_Nulo() { //arrange var pedidoManager = new PedidoManager(loggerMock.Object, pedidoDALMock.Object, produtoDALMock.Object); //act Action action = () => pedidoManager.AdicionarItem(null, "abc", 1); //assert action.Should().Throw <ArgumentNullException>() .And .ParamName.Should().Be("pedido"); }
public void AdicionarItem_Pedido_Status_Invalido(int status) { //arrange var pedidoManager = new PedidoManager(loggerMock.Object, pedidoDALMock.Object, produtoDALMock.Object); var pedido = new Pedido() { Id = 1, Cliente = "José da Silva", Itens = new List <ItemPedido>(), Status = (PedidoStatus)status, Total = 0 }; //act Action action = () => pedidoManager.AdicionarItem(pedido, "abc", 1); //assert action.Should().Throw <StatusInvalidoException>(); }
public void CriarPedido_Cliente_Nulo(string nomeCliente) { //Arrange //Act PedidoManager pedidoManager = new PedidoManager(loggerMock.Object, pedidoDALmock.Object, produtoDALmock.Object); Action action = () => pedidoManager.CriarPedido(nomeCliente); //Assert action.Should().Throw <ArgumentNullException>() .And .ParamName.Should().Be("cliente"); }
public void CriarPedido_Success(int pedidoId, string cliente) { //Red -> Green -> Refactor ///3 As //arrange - preparação //Mock = boneco/imitação/fantoche loggerMock .Setup(x => x.Info($"Pedido {pedidoId} gravado com sucesso.")) //.Setup(x => x.Info(It.IsAny<string>())) .Verifiable(); pedidoDALmock .Setup(x => x.Create(It.IsAny <string>())) .Returns(new Model.Pedido() { Id = pedidoId, Total = 0, Cliente = cliente, Status = Model.PedidoStatus.Aberto, Itens = new List <Model.ItemPedido>() }) .Verifiable(); IPedidoManager pedidoManager = new PedidoManager(loggerMock.Object, pedidoDALmock.Object, produtoDALmock.Object); //act var pedido = pedidoManager.CriarPedido("Fulano de Tal"); //assert Assert.AreEqual(cliente, pedido.Cliente); Assert.AreEqual(Model.PedidoStatus.Aberto, pedido.Status); Assert.AreEqual(0, pedido.Itens.Count); pedido.Id.Should().Be(pedidoId); pedido.Total.Should().Be(0); pedido.Cliente.Should().Be(cliente); pedido.Status.Should().Be(Model.PedidoStatus.Aberto); pedido.Itens.Should().BeEmpty(); Mock.Verify(loggerMock); Mock.Verify(pedidoDALmock); //Mock.VerifyAll(); }
public void CriarPedido_Erro_BancoDeDados() { //arrange pedidoDALMock .Setup(x => x.Create(It.IsAny <string>())) .Throws(new ApplicationException("Erro ao criar pedido no banco de dados.")) .Verifiable(); loggerMock .Setup(x => x.Error("Erro ao criar pedido no banco de dados.")) .Verifiable(); //act PedidoManager pedidoManager = new PedidoManager(loggerMock.Object, pedidoDALMock.Object, produtoDALMock.Object); //assert var pedido = pedidoManager.CriarPedido("Fulano de Tal"); }
public void CriarPedido_Success(int pedidoId, string cliente) { pedidoDALMock .Setup(x => x.Create(cliente)) .Returns(new Model.Pedido() { Id = pedidoId, Cliente = cliente, Itens = new List <Model.ItemPedido>(), Status = Model.PedidoStatus.Aberto, Total = 0 }); loggerMock .Setup(x => x.Info($"Pedido {pedidoId} gravado com sucesso.")) .Verifiable(); //arrange IPedidoManager pedidoManager = new PedidoManager(loggerMock.Object, pedidoDALMock.Object, produtoDALMock.Object); //act var pedido = pedidoManager.CriarPedido(cliente); //assert //Assert.AreEqual(Model.PedidoStatus.Aberto, pedido.Status); //Assert.AreEqual("Fulano de Tal", pedido.Cliente); //Assert.AreEqual(1000, pedido.Id); //Assert.AreEqual(0, pedido.Total); //Assert.AreEqual(0, pedido.Itens.Count); // Efetua todas as validações, mesmo que uma falhe using (new AssertionScope()) { pedido.Id.Should().Be(pedidoId); pedido.Total.Should().Be(0); pedido.Status.Should().Be(Model.PedidoStatus.Aberto); pedido.Cliente.Should().Be(cliente); pedido.Itens.Should().BeEmpty(); } Mock.Verify(pedidoDALMock); Mock.Verify(loggerMock); loggerMock.Verify(x => x.Info($"Pedido {pedidoId} gravado com sucesso."), Times.Once); }
public void AdicionarItem_Codigo_Invalido(string codigo) { //Arrange //Act PedidoManager pedidoManager = new PedidoManager(loggerMock.Object, pedidoDALmock.Object, produtoDALmock.Object); var pedido = new Pedido(); Action action = () => pedidoManager.AdicionarItem(pedido, codigo, 3); //Assert action .Should() .Throw <ArgumentException>() .And .ParamName.Should().Be("codigo"); }
public void AdicionarItem_Quantidade_Invalida(int quantidade) { //Arrange //Act PedidoManager pedidoManager = new PedidoManager(loggerMock.Object, pedidoDALmock.Object, produtoDALmock.Object); var pedido = new Pedido(); Action action = () => pedidoManager.AdicionarItem(pedido, "abc", quantidade); //Assert action .Should() .Throw <ArgumentOutOfRangeException>() .And .ParamName.Should().Be("quantidade"); }
public void AdicionarItem_Success() { //Arrange produtoDALmock .Setup(x => x.Get("abc")) .Returns(new Produto("abc", "Produto ABC", 10.59m)) .Verifiable(); //Act PedidoManager pedidoManager = new PedidoManager(loggerMock.Object, pedidoDALmock.Object, produtoDALmock.Object); var pedido = new Pedido(); pedido.Status = PedidoStatus.Aberto; pedidoManager.AdicionarItem(pedido, "abc", 123); //Assert pedido.Itens.Should().HaveCount(1); }
public void AdicionarItem_Quantidade_Invalida(int quantidade) { //arrange pedidoDALMock .Setup(x => x.Create("José da Silva")) .Returns(new Model.Pedido() { Id = 1000, Cliente = "José da Silva", Itens = new List <Model.ItemPedido>(), Status = Model.PedidoStatus.Aberto, Total = 0 }); var pedidoManager = new PedidoManager(loggerMock.Object, pedidoDALMock.Object, produtoDALMock.Object); var pedido = pedidoManager.CriarPedido("José da Silva"); //act Action action = () => pedidoManager.AdicionarItem(pedido, "abc", quantidade); //assert action.Should().Throw <ArgumentOutOfRangeException>() .And .ParamName.Should().Be("quantidade"); }
public void AdicionarItem_Pedido_Status_Invalido(PedidoStatus pedidoStatus) { //Arrange produtoDALmock .Setup(x => x.Get("abc")) .Returns(new Produto("abc", "Produto ABC", 10.59m)) .Verifiable(); //Act PedidoManager pedidoManager = new PedidoManager(loggerMock.Object, pedidoDALmock.Object, produtoDALmock.Object); var pedido = new Pedido(); pedido.Status = pedidoStatus; Action action = () => pedidoManager.AdicionarItem(pedido, "abc", 123); //Assert action .Should() .Throw <StatusInvalidoException>(); }
public void AdicionarItem_Produto_Nao_Encontrado() { //Arrange produtoDALmock .Setup(x => x.Get("abc")) .Throws(new KeyNotFoundException()) .Verifiable(); //Act PedidoManager pedidoManager = new PedidoManager(loggerMock.Object, pedidoDALmock.Object, produtoDALmock.Object); var pedido = new Pedido(); pedido.Status = PedidoStatus.Aberto; Action action = () => pedidoManager.AdicionarItem(pedido, "abc", 123); //Assert action .Should() .Throw <ProdutoNaoEncontradoException>(); }
// POST api/<controller> public void Post([FromBody] Pedido miPedido) { PedidoManager.GuardarPedido(miPedido); }
// GET api/<controller> public IEnumerable <Pedido> Get() { return(PedidoManager.ObtenerPedido()); }
public PedidoAppService(PedidoManager pedidoManager) { this._pedidoManager = pedidoManager; }
public PedidoController() { this.pedidoNegocio = new PedidoManager(); }
public ClienteAppService(ClienteManager clienteManager, PedidoManager pedido) { this._clienteManager = clienteManager; this.servicePedido = pedido; }
public void AdicionarItem_Success(int produtoId, string codigo, int quantidade, double precoUnitario) { //arrange var p = new Model.Pedido() { Id = 1000, Cliente = "José da Silva", Itens = new List <Model.ItemPedido>(), Status = Model.PedidoStatus.Aberto, Total = 0 }; var i = new Model.ItemPedido(produtoId, quantidade, (decimal)precoUnitario); pedidoDALMock .Setup(x => x.Create("José da Silva")) .Returns(p) .Verifiable(); pedidoDALMock .Setup(x => x.AddItem(p, i)) .Callback(() => { p.Itens.Add(i); }) .Verifiable(); KeyNotFoundException exception = new KeyNotFoundException(); produtoDALMock .Setup(x => x.Get("abc")) .Returns(new Produto("abc", "produto abc", 10.0m) { Id = 1 }); produtoDALMock .Setup(x => x.Get("def")) .Returns(new Produto("def", "produto def", 20.0m) { Id = 2 }); produtoDALMock .Setup(x => x.Get("ghi")) .Returns(new Produto("ghi", "produto ghi", 30.0m) { Id = 3 }); var pedidoManager = new PedidoManager(loggerMock.Object, pedidoDALMock.Object, produtoDALMock.Object); var pedido = pedidoManager.CriarPedido("José da Silva"); //act var item = pedidoManager.AdicionarItem(pedido, codigo, quantidade); //assert produtoDALMock.Verify(x => x.Get(codigo)); pedidoDALMock.Verify(); pedido.Itens .Should().NotBeEmpty() .And .HaveCount(1) .And .Contain(new ItemPedido(produtoId, quantidade, (decimal)precoUnitario)); }
public void TestInitialize() { this.mockPedidoDAL = new Mock <IPedidoDAL>(); this.mockProdutoDAL = new Mock <IProdutoDAL>(); this.pedidoManager = new PedidoManager(mockPedidoDAL.Object, mockProdutoDAL.Object); }