DemoBlazeAutomation / StepDefinitions / DemoBlazeSteps.cs
DemoBlazeSteps.cs
Raw
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());

        }


    }
}