예제 #1
0
        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);
        }
예제 #3
0
        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);
        }