public void BuscarPedido() { Cliente clienteEsperado = new Cliente() { Id = 1, CPF = 12345678910, Nome = "Cliente Teste", Endereco = new Endereco() { Rua = "Rua Teste", Numero = 3, Complemento = "101" } }; List <Item> itensEsperados = new List <Item>() { new Item() { Id = 1, Descricao = "Item de Teste 1", Valor = 1.99M }, new Item() { Id = 2, Descricao = "Item de Teste 2", Valor = 1000 } }; var pedido = FabricaPedido.CriarPedido(clienteEsperado, itensEsperados); var repositorio = new RepositorioPedidoMongoDB(connectionString); var retorno = repositorio.CriarPedidoAsync(pedido); retorno.Wait(); var retorno2 = repositorio.BuscarPedidoAsync(pedido.Id); retorno2.Wait(); var pedidoSalvo = retorno2.Result; Assert.IsNotNull(pedidoSalvo); Assert.AreEqual(pedidoSalvo.Id, pedido.Id); Assert.IsNotNull(pedidoSalvo.Cliente); Assert.AreEqual(pedidoSalvo.Cliente.Id, pedido.Cliente.Id); Assert.IsNotNull(pedidoSalvo.Itens); foreach (var item in itensEsperados) { Assert.IsTrue(pedidoSalvo.Itens.Any(a => a.Id == item.Id)); } }
public void CriarPedido() { Cliente clienteEsperado = new Cliente() { Id = 1, CPF = 12345678910, Nome = "Cliente Teste", Endereco = new Endereco() { Rua = "Rua Teste", Numero = 3, Complemento = "101" } }; List <Item> itensEsperados = new List <Item>() { new Item() { Id = 1, Descricao = "Item de Teste 1", Valor = 1.99M }, new Item() { Id = 2, Descricao = "Item de Teste 2", Valor = 1000 } }; var pedido = FabricaPedido.CriarPedido(clienteEsperado, itensEsperados); var repositorio = new RepositorioPedidoMongoDB(connectionString); var retorno = repositorio.CriarPedidoAsync(pedido); retorno.Wait(); }
public void BuscarPedidosPorCliente() { Cliente cliente = new Cliente() { Id = 10, CPF = 12345678910, Nome = "Cliente Teste", Endereco = new Endereco() { Rua = "Rua Teste", Numero = 3, Complemento = "101" } }; List <Pedido> pedidosEsperados = new List <Pedido>(); for (int i = 0; i < 5; i++) { var itens = new List <Item>() { new Item() { Id = i, Descricao = "Item de Teste 1", Valor = i } }; var pedido = FabricaPedido.CriarPedido(cliente, itens); pedidosEsperados.Add(pedido); } var repositorio = new RepositorioPedidoMongoDB(connectionString); pedidosEsperados.ForEach(pedido => { var retorno = repositorio.CriarPedidoAsync(pedido); retorno.Wait(); }); var retorno2 = repositorio.BuscarPedidosPorClienteAsync(cliente); retorno2.Wait(); var pedidosSalvos = retorno2.Result; pedidosEsperados.ForEach(pedido => { var pedidoSalvo = pedidosSalvos.First(a => a.Id == pedido.Id); Assert.IsNotNull(pedidoSalvo); Assert.AreEqual(pedidoSalvo.Id, pedido.Id); Assert.IsNotNull(pedidoSalvo.Cliente); Assert.AreEqual(pedidoSalvo.Cliente.Id, pedido.Cliente.Id); Assert.IsNotNull(pedidoSalvo.Itens); foreach (var item in pedido.Itens) { Assert.IsTrue(pedidoSalvo.Itens.Any(a => a.Id == item.Id)); } }); }
public void AtualizarPedido() { EstadoPedido estadoEsperado = EstadoPedido.Cancelado; Cliente clienteEsperado = new Cliente() { Id = 1, CPF = 12345678910, Nome = "Cliente Teste", Endereco = new Endereco() { Rua = "Rua Teste", Numero = 3, Complemento = "101" } }; List <Item> itensEsperados = new List <Item>() { new Item() { Id = 1, Descricao = "Item de Teste 1", Valor = 1.99M }, new Item() { Id = 2, Descricao = "Item de Teste 2", Valor = 1000 } }; var pedido = FabricaPedido.CriarPedido(clienteEsperado, itensEsperados); var repositorio = new RepositorioPedidoMongoDB(connectionString); var retorno = repositorio.CriarPedidoAsync(pedido); retorno.Wait(); var retorno2 = repositorio.BuscarPedidoAsync(pedido.Id); retorno2.Wait(); var pedidoSalvo = retorno2.Result; Assert.IsNotNull(pedidoSalvo); Assert.AreEqual(pedidoSalvo.Id, pedido.Id); Assert.IsNotNull(pedidoSalvo.Cliente); Assert.AreEqual(pedidoSalvo.Cliente.Id, pedido.Cliente.Id); Assert.IsNotNull(pedidoSalvo.Itens); foreach (var item in itensEsperados) { Assert.IsTrue(pedidoSalvo.Itens.Any(a => a.Id == item.Id)); } string mensagem; var resultadoCancelamento = pedidoSalvo.Cancelar(out mensagem); Assert.IsTrue(resultadoCancelamento); Assert.IsTrue(string.IsNullOrEmpty(mensagem)); var retorno3 = repositorio.AtualizarPedidoAsync(pedidoSalvo); retorno3.Wait(); var retorno4 = repositorio.BuscarPedidoAsync(pedido.Id); retorno4.Wait(); pedidoSalvo = retorno4.Result; Assert.IsNotNull(pedidoSalvo); Assert.AreEqual(pedidoSalvo.Id, pedido.Id); Assert.IsNotNull(pedidoSalvo.Cliente); Assert.AreEqual(pedidoSalvo.Cliente.Id, pedido.Cliente.Id); Assert.IsNotNull(pedidoSalvo.Itens); foreach (var item in itensEsperados) { Assert.IsTrue(pedidoSalvo.Itens.Any(a => a.Id == item.Id)); } Assert.AreEqual(estadoEsperado, pedidoSalvo.Estado); }