<repo_name>GabrielMarinan/curso_appium<file_sep>/src/test/java/pages/SelecProductoPage.java
package pages;

import conexion.DriverContext;
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.MobileElement;
import io.appium.java_client.pagefactory.AndroidFindBy;
import io.appium.java_client.pagefactory.AppiumFieldDecorator;
import io.qameta.allure.model.Status;
import org.aspectj.weaver.ast.And;
import org.openqa.selenium.support.PageFactory;

import static reports.Reports.addStep;
import static utils.MetodosGenericos.esperaExplicita;
import static utils.MetodosGenericos.esperarObjeto;

public class SelecProductoPage {
    private AppiumDriver driver;
    public SelecProductoPage(){
        this.driver = DriverContext.getDriver();
        PageFactory.initElements(new AppiumFieldDecorator(driver),this);
    }
    /**
     * Objetos
     */
    @AndroidFindBy(id = "android:id/text1")
    private MobileElement primerProducto;
    /**
     * Metodos
     */
    public void selecPrimerProducto(){
        if (esperarObjeto(primerProducto,5)){
            primerProducto.click();
            esperaExplicita(1/2);
            addStep("Click en primer producto",false, Status.PASSED,false);
        } else addStep("Click en primer producto",false, Status.FAILED,false);
    }
}
<file_sep>/src/test/java/testSuites/TestCase03_EliminarCliente.java
package testSuites;

import conexion.DriverContext;
import org.testng.Assert;
import org.testng.annotations.AfterSuite;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.Test;
import pages.CarruselPage;
import pages.ClientePage;
import pages.RegistroPage;

import static reports.Reports.finalAssert;

public class TestCase03_EliminarCliente {
    DriverContext driverContext;
    CarruselPage carruselPage;
    RegistroPage registroPage;
    ClientePage clientePage;
    @BeforeSuite
    public void iniciarSession(){
        driverContext = new DriverContext();
        driverContext.setUP("emulator-5554","Android","C:\\Users\\Gabriel.Marinan\\Downloads\\registroDeUsuarios.apk",
                "emulator-5554",true);
        System.out.println("Applicacion desplegada");
    }
    @Test(priority = 1,description = "Validación carrusel")
    public void validarDespliegue(){
        carruselPage = new CarruselPage();
        carruselPage.validarVistaDesplegada();
        finalAssert();

    }
    @Test(priority = 2,description = "Recorrer carrusel")
    public void carrusel(){
        carruselPage.recorrerCarrusel();
        registroPage = new RegistroPage();
        // Validar que se recorre correctamente el carrusel hasta llegar a la siguiente page
        Assert.assertTrue(registroPage.validarRegistroPage());
        finalAssert();
    }
    @Test(priority = 3,description = "Seleccionar cliente")
    public void seleccionarCliente(){
        registroPage.seleccionarCliente("<NAME>");

    }
    @Test(priority = 4,description = "Eliminar cliente desde la page cliente")
    public void eliminarCliente(){
        clientePage = new ClientePage();
        clientePage.borrarCliente();
        /**
         *Cliente aunque esté eliminado sigue apareciendo pero "invisible", desinstalé la app y aún así seguía apareciendo
         */
        Assert.assertFalse(registroPage.findClientByName("<NAME>"));
    }
    @AfterSuite
    public void cerrarSession(){
        driverContext.quitDriver();
    }
}
<file_sep>/src/test/java/testSuites/TestCase02_CrearVentaCliente.java
package testSuites;

import conexion.DriverContext;
import org.testng.Assert;
import org.testng.annotations.AfterSuite;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.Test;
import pages.*;

import static reports.Reports.finalAssert;

public class TestCase02_CrearVentaCliente {
    DriverContext driverContext;
    CarruselPage carruselPage;
    RegistroPage registroPage;
    SelecProductoPage selecProductoPage;
    CompraIndividualPage compraIndividualPage;
    ClientePage clientePage;
    VentaPage ventaPage;
    @BeforeSuite
    public void iniciarSession(){
        driverContext = new DriverContext();
        driverContext.setUP("emulator-5554","Android","C:\\Users\\Gabriel.Marinan\\Downloads\\registroDeUsuarios.apk",
                "emulator-5554",true);
        System.out.println("Applicacion desplegada");
    }
    @Test(priority = 1,description = "Validación carrusel")
    public void validarDespliegue(){
        carruselPage = new CarruselPage();
        carruselPage.validarVistaDesplegada();
        finalAssert();

    }
    @Test(priority = 2,description = "Recorrer carrusel")
    public void carrusel(){
        carruselPage.recorrerCarrusel();
        registroPage = new RegistroPage();
        // Validar que se recorre correctamente el carrusel hasta llegar a la siguiente page
        Assert.assertTrue(registroPage.validarRegistroPage());
        finalAssert();
    }
    @Test(priority = 3,description = "Seleccionar cliente")
    public void seleccionarCliente(){
        registroPage.seleccionarCliente("<NAME>");

    }
    @Test(priority = 4,description = "Añadir venta",enabled = false)
    public void anadirVenta(){
        clientePage = new ClientePage();
        selecProductoPage = new SelecProductoPage();
        compraIndividualPage = new CompraIndividualPage();
        ventaPage = new VentaPage();
        clientePage.clickNuevaVenta();
        selecProductoPage.selecPrimerProducto();
        compraIndividualPage.seleccionarCantidad();
        ventaPage.confirmarVenta();

    }
    @Test(priority = 5,description = "Validar precio final")
    public void precioFinal(){
        clientePage = new ClientePage();
        clientePage.precioCorrecto("55555");
    }
    // 50 from factories
    @AfterSuite
    public void cerrarSession(){
        driverContext.quitDriver();
    }
}
