public async Task AdicionarItem_NovoPedido_DeveAtualizarValorTotal() { // Arrange var produtoId = new Guid("18d3f6d2-3ce4-46a7-9dca-2822fad7b460"); const int quantidade = 2; var initialResponse = await _testsFixture.Client.GetAsync($"/produto-detalhe/{produtoId}"); initialResponse.EnsureSuccessStatusCode(); var formData = new Dictionary <string, string> { { "Id", produtoId.ToString() }, { "quantidade", quantidade.ToString() } }; await _testsFixture.RealizarLoginWeb(); var postRequest = new HttpRequestMessage(HttpMethod.Post, "/meu-carrinho") { Content = new FormUrlEncodedContent(formData) }; // Act var postResponse = await _testsFixture.Client.SendAsync(postRequest); var responseStream = await postResponse.Content.ReadAsStreamAsync(); string responseString = new StreamReader(responseStream).ReadToEnd(); // Assert postResponse.EnsureSuccessStatusCode(); var html = new HtmlParser() .ParseDocumentAsync(responseString) .Result .All; var formQuantidade = html?.FirstOrDefault(c => c.Id == "quantidade")?.GetAttribute("value")?.ApenasNumeros(); var valorUnitario = html?.FirstOrDefault(c => c.Id == "valorUnitario")?.TextContent.Split(",")[0]?.ApenasNumeros(); var valorTotal = html?.FirstOrDefault(c => c.Id == "valorTotal")?.TextContent.Split(",")[0]?.ApenasNumeros(); Assert.Equal(valorTotal, valorUnitario * formQuantidade); }
public async Task AdicionarItem_NovoPedido_DeveAtualizarValorTotal() { // Arrange //Poderiamos ir no banco de dados para buscar os dados, ou qualquer outra fonte de dados. var produtoId = new Guid("22043EE5-985C-44BE-9077-08D78CD4B3AF"); const int quantidade = 2; var initialResponse = await _testsFixture.Client.GetAsync($"/produto-detalhe/{produtoId}"); initialResponse.EnsureSuccessStatusCode(); var formData = new Dictionary <string, string> { { "Id", produtoId.ToString() }, { "quantidade", quantidade.ToString() } }; await _testsFixture.RealizarLoginWeb(); var postRequest = new HttpRequestMessage(HttpMethod.Post, "/meu-carrinho") { Content = new FormUrlEncodedContent(formData) }; // Act var postResponse = await _testsFixture.Client.SendAsync(postRequest); // Assert postResponse.EnsureSuccessStatusCode(); var html = new HtmlParser() .ParseDocumentAsync(await postResponse.Content.ReadAsStringAsync()) .Result .All; var formQuantidade = html?.FirstOrDefault(c => c.Id == "quantidade")?.GetAttribute("value")?.ApenasNumeros(); var valorUnitario = html?.FirstOrDefault(c => c.Id == "valorUnitario")?.TextContent.Split(".")[0]?.ApenasNumeros(); var valorTotal = html?.FirstOrDefault(c => c.Id == "valorTotal")?.TextContent.Split(".")[0]?.ApenasNumeros(); Assert.Equal(valorTotal, valorUnitario * formQuantidade); }
public async Task Order_AddItemNewOrder_ShouldAddItemAndUpdateTotal() { // Arrange var productId = new Guid("4251ebd0-0e7e-4169-8ea6-50588d6f1714"); const int quantity = 2; var inicitalResponse = await _testsFixture.Client.GetAsync($"/produto-detalhe/{productId}"); inicitalResponse.EnsureSuccessStatusCode(); var formData = new Dictionary <string, string> { { "Id", productId.ToString() }, { "quantidade", quantity.ToString() } }; await _testsFixture.RealizarLoginWeb(); var postRequest = new HttpRequestMessage(HttpMethod.Post, "/meu-carrinho") { Content = new FormUrlEncodedContent(formData) }; // act var postResponse = await _testsFixture.Client.SendAsync(postRequest); // Assert var html = new HtmlParser() .ParseDocumentAsync(await postResponse.Content.ReadAsStringAsync()) .Result .All; var formQuantity = html?.FirstOrDefault(c => c.Id == "quantidade")?.GetAttribute("value").ApenasNumeros(); var valorUnitario = html?.FirstOrDefault(c => c.Id == "valorUnitario")?.TextContent.Split(".")[0]?.ApenasNumeros(); var valorTotal = html?.FirstOrDefault(c => c.Id == "valorTotal")?.TextContent.Split(".")[0]?.ApenasNumeros(); Assert.Equal(valorTotal, valorUnitario * formQuantity); }