using DemoBlazeAutomation.POM.Input; using FluentAssertions; namespace DemoBlazeAutomation.StepDefinitions { internal class DemoBlazeSteps : BaseSteps { public DemoBlazeSteps(IWebDriver driver) : base(driver) { } [Given(@"que estoy en la pagina (.*)")] public void GivenQueEstoyEnLaPaginaUrl(string url) { HomePage.NavigateTo(url); } [When(@"agrego un (.*) al carrito")] public void WhenAgregoUnProductoAlCarrito(string product) { HomePage.ClickProduct(product); ProductDetailPage.AddToCart(); } [When(@"realizo la compra")] public void WhenRealizoLaCompra() { CartPage.CompletePurchaseDetails(); } [Then(@"deberia visualizar un mensaje de confirmacion")] public void ThenDeberiaVisualizarUnMensajeDeConfirmacion() { { string msgOK = CartPage.MessageOK(); msgOK.Should().Contain("Thank you for your purchase!"); CartPage.DisplayMessageConfirmation().Should().BeTrue(); CartPage.FinishPurchase(); } } ///Navegar por secciones [When(@"navego a la seccion (.*)")] public void WhenNavegoPorCadaSeccionSeccion(string seccionName) { Console.WriteLine("Voy a la sección: " + seccionName); HomePage.GoToSection(seccionName); } [Then(@"deberia acceder a cada seccion (.*)")] public void ThenDeberiaAccederACadaSeccionVerificar(string value) { HomePage.ValidateURLorModal(value); } //Iniciar Sesion [When(@"ingreso mis credenciales <username> <password>")] public void WhenIngresoMisCredencialesUsernamePassword(Table table) { HomePage.Login(table); } [When(@"presiono el botón de iniciar sesión")] public void WhenPresionoElBotonDeIniciarSesion() { HomePage.ClickBtnLogin(); } [Then(@"debería ser redirigido a la home con el usuario autenticado como (.*)")] public void ThenDeberiaSerRedirigidoALaHomeConElUsuarioAutenticadoComoUsername(string username) { string msgObtained = HomePage.UserLoginSuccesfull(); string msgExpected = "Welcome " + username; msgObtained.Should().Equals(msgExpected); } ///Verificar formulario [When(@"envio el formulario completo")] public void WhenEnvioElFormularioCompleto() { HomePage.CompleteAndSendForm(); } [Then(@"deberia visualizar un alert con el mensaje (.*)")] public void ThenDeberiaAparecerUnAlertConElMensaje(string alertMsgExpected) { string alertMsgObtained = HomePage.MessageAlert(); Console.WriteLine("Esperado:" + alertMsgExpected); Console.WriteLine("Obtenido:" + alertMsgObtained); alertMsgObtained.Should().Be(alertMsgExpected); HomePage.CloseAlert(); } [Then(@"deberia volver a la pagina principal")] public void ThenDeberiaVolverALaPaginaPrincipal() { var url = HomePage.GetCurrentUrl(); url.Should().Be("https://www.demoblaze.com/"); } /// Verificar disponibilidad del catálogo [When(@"visualizo todos los productos del sitio")] public void WhenVisualizoTodosLosProductosDelSitio() { HomePage.NavigateToCatologo(); var productosObtenidos = HomePage.TotalProduct(); Console.WriteLine("Productos obtenidos:" + productosObtenidos); } [Then(@"deberian mostrarse todos los esperados")] public void ThenDeberianMostrarseTodosLosEsperados() { var productosObtenidos = HomePage.TotalProduct(); var productosEsperados = ProductMarketTest.CantidadDeProductosEsperados(); Console.WriteLine("Productos esperados:" + productosEsperados); Console.WriteLine("Productos obtenidos:" + productosObtenidos); productosObtenidos.Should().Be(productosEsperados); var listaObtenida = HomePage.ListObtained(); var listaEsperada = ProductMarketTest.VerificarQueTodosLosProductosSonCorrectamenteMostrados(); listaEsperada.Should().BeEquivalentTo(listaObtenida); } [Then(@"todos los precios de los productos deberian ser mayor a (.*)")] public void ThenTodosLosPreciosDeLosProductosDeberianSer(int valor) { var listaObtenida = HomePage.ListObtained(); for (var i = 0; i < listaObtenida.Count; i++) { Console.WriteLine("Precio del producto: " + listaObtenida[i].Price); listaObtenida[i].Price.Should().BeGreaterThan(valor); } } // Verificar el carro de compras [Then(@"el carrito deberia mostrar la cantidad de productos agregados y el monto correcto")] public void ThenElCarritoDeberiaMostrarLaCantidadAgregadaYElMontoCorrecto() { HomePage.GoToSection("Cart"); //Console.WriteLine("Total de productos agregados por PageDetail:" + ProductDetailPage.TotalProductAdded()); //Console.WriteLine("Total de productos agregados por Cart:" + CartPage.TotalElements()); ProductDetailPage.TotalProductAdded().Should().Be(CartPage.TotalElements()); ProductDetailPage.TotalPriceProduct().Should().Be(CartPage.TotalPurchase()); Console.WriteLine("Total $ de la compra leida desde la tabla:" + CartPage.TotalPurchase()); Console.WriteLine("Total $ de la compra leida PageDetail:" + ProductDetailPage.TotalPriceProduct()); } } }