public async Task CreateOrUpdate_Success() { //arrange var pedido = new Pedido( new List <ItemPedido> { new ItemPedido("001", "produto 001", 1, 12.34m), new ItemPedido("002", "produto 002", 2, 23.45m) }, "clienteId", "clienteNome", "*****@*****.**", "fone", "endereco", "complemento", "bairro", "municipio", "uf", "12345-678"); var options = new DbContextOptionsBuilder <ApplicationContext>().UseInMemoryDatabase(databaseName: "database_name").Options; using (var context = new ApplicationContext(options)) { var pedidoEntity = await context.AddAsync(pedido); var repo = new PedidoRepository(context); //act Pedido result = await repo.CreateOrUpdate(pedido); //assert Assert.Equal(2, result.Itens.Count); Assert.Collection(result.Itens, item => Assert.Equal("001", item.ProdutoCodigo), item => Assert.Equal("002", item.ProdutoCodigo) ); } }
public async Task CreateOrUpdate_Pedido_NullAsync() { //arrange var repo = new PedidoRepository(contextoMock.Object); //act+assert await Assert.ThrowsAsync <ArgumentNullException>(() => repo.CreateOrUpdate(null)); }
public async Task CreateOrUpdate_No_Items() { //arrange var pedido = new Pedido(); var repo = new PedidoRepository(contextoMock.Object); //act+assert await Assert.ThrowsAsync <NoItemsException>(() => repo.CreateOrUpdate(pedido)); }
public async Task CreateOrUpdate_Invalid_Client_Data(string clienteId, string clienteNome, string clienteEmail, string clienteTelefone, string clienteEndereco, string clienteComplemento, string clienteBairro, string clienteMunicipio, string clienteUF, string clienteCEP) { //arrange var pedido = new Pedido( new List <ItemPedido> { new ItemPedido("001", "produto 001", 1, 12.34m), new ItemPedido("002", "produto 002", 2, 23.45m) }, clienteId, clienteNome, clienteEmail, clienteTelefone, clienteEndereco, clienteComplemento, clienteBairro, clienteMunicipio, clienteUF, clienteCEP); var repo = new PedidoRepository(contextoMock.Object); //act+assert await Assert.ThrowsAsync <InvalidUserDataException>(() => repo.CreateOrUpdate(pedido)); }
public async Task CreateOrUpdate_Invalid_Item(string codigo, string nome, int qtde, decimal preco) { //arrange var pedido = new Pedido( new List <ItemPedido> { new ItemPedido("001", "produto 001", 1, 12.34m), new ItemPedido(codigo, nome, qtde, preco) }, "clienteId", "clienteNome", "*****@*****.**", "fone", "endereco", "complemento", "bairro", "municipio", "uf", "12345-678"); var repo = new PedidoRepository(contextoMock.Object); //act+assert await Assert.ThrowsAsync <InvalidItemException>(() => repo.CreateOrUpdate(pedido)); }