<repo_name>JMLuceroav/Automatizacion<file_sep>/automation/src/test/java/com/choucair/formacion/pageobjects/CategoriaPage.java
package com.choucair.formacion.pageobjects;

import net.serenitybdd.core.annotations.findby.FindBy;
import net.serenitybdd.core.pages.PageObject;
import net.serenitybdd.core.pages.WebElementFacade;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.containsString;

public class CategoriaPage extends PageObject{
	
	@FindBy(id="txtNombre")
	public WebElementFacade txtNombreCate;
	
	@FindBy(id="btnGuardar")
	public WebElementFacade btnSave;
	
	@FindBy(xpath="//*[@id='messages']/div/ul/li/span")
	public WebElementFacade lblVerifica;
	
	@FindBy(id="txtFiltro")
	public WebElementFacade txtFiltroCateg;
	
	@FindBy(id="btnFiltrar")
	public WebElementFacade btnFiltrar;
	
	@FindBy(xpath="//*[@id='tablaCategorias_data']/tr/td[1]")
	public WebElementFacade tbCateg;
	
	@FindBy(id="btnActualizar")
	public WebElementFacade btnUpdate;
	
	@FindBy(xpath="/html/body/section/div[2]/div/div/div/div/div/div[1]/div/div")
	public WebElementFacade lblValida;
	
	@FindBy(xpath="//*[@id='messages']/div/ul/li/span")
	public WebElementFacade lblValidaUpdate;
	
	@FindBy(id="btnEliminar")
	public WebElementFacade btnDelete;
	
	@FindBy(id="btnSi")
	public WebElementFacade btnSi;
	
	@FindBy(xpath="//*[@id='messages']/div/ul/li/span")
	public WebElementFacade lblValidaDelete;
		
	public void registrar_nueva_categoria(String categoria) {
		txtNombreCate.sendKeys(categoria);
		btnSave.click();
	}
	
	public void verifica_registro_categoria() {
		String strMensaje =lblVerifica.getText();
		String lblv ="Se guardó de manera correcta la Categoría";
		assertThat(strMensaje, containsString(lblv));
	}
	
	public void buscar_categoria(String updateCategoria) {
		txtFiltroCateg.sendKeys(updateCategoria);
		btnFiltrar.click();
	}
	
	public void seleccionar_categoria_tabla() {
		System.out.println("traeee"+ tbCateg.getText());
		tbCateg.click();
	}
	
	public void seleccionar_opcion_editar() {
		btnUpdate.click();
		String msg =lblValida.getText();
		String lblv ="Actualizar Categoría";
		assertThat(msg, containsString(lblv));
	}
	
	public void actualizar_categoria(String newCategoria) {
		txtNombreCate.clear();
		txtNombreCate.click();
		txtNombreCate.sendKeys(newCategoria);
		btnSave.click();
	}
	
	public void verificar_categoria_Actualizada() {
		String msg1 =lblValidaUpdate.getText();
		String lblv ="Se actualizó de manera correcta la Categoría";
		assertThat(msg1, containsString(lblv));
	}
	
	public void eliminar_categoria() {
		btnDelete.click();
		btnSi.click();
	}
	
	public void verificar_categoria_eliminada() {
		String msg2 =lblValidaDelete.getText();
		String lblv ="Se eliminó de manera correcta la Categoría";
		assertThat(msg2, containsString(lblv));
	}
	
}
<file_sep>/automation/src/test/java/com/choucair/formacion/steps/CategoriaSteps.java
package com.choucair.formacion.steps;

import java.util.List;

import com.choucair.formacion.pageobjects.CategoriaPage;

import net.thucydides.core.annotations.Step;

public class CategoriaSteps {
	
	CategoriaPage categoriaPage;
	
	@Step
	public void diligenciar_Categorias_tabla(List<List<String>> data, int id) {
		categoriaPage.registrar_nueva_categoria(data.get(id).get(0).trim());
	}
	
	@Step
	public void valida_registro_categoria() {
		categoriaPage.verifica_registro_categoria();
	}	
	
	
	@Step
	public void buscar_categoria(List<List<String>> data, int id) {
		categoriaPage.buscar_categoria(data.get(id).get(0).trim());
	}
	
	@Step
	public void seleccionar_categoria() {
		categoriaPage.seleccionar_categoria_tabla();
	}
	
	@Step
	public void seleccionar_categoria_editar() {
		categoriaPage.seleccionar_opcion_editar();
	}
	
	@Step
	public void update_categoria(List<List<String>> data, int id) {
		categoriaPage.actualizar_categoria(data.get(id).get(0).trim());
	}
	
	@Step
	public void validar_categoria_update() {
		categoriaPage.verificar_categoria_Actualizada();
	}
	
	@Step
	public void delete_categoria() {
		categoriaPage.eliminar_categoria();
	}
	
	@Step
	public void verificar_categoria_delete() {
		categoriaPage.verificar_categoria_eliminada();
	}	
}
<file_sep>/automation/src/test/java/com/choucair/formacion/pageobjects/LoginPage.java
package com.choucair.formacion.pageobjects;

import net.serenitybdd.core.annotations.findby.FindBy;
import net.serenitybdd.core.pages.PageObject;
import net.serenitybdd.core.pages.WebElementFacade;
import net.thucydides.core.annotations.DefaultUrl;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.containsString;


@DefaultUrl("http://localhost:8080/VisorWeb/")
public class LoginPage extends PageObject{
	
	@FindBy(id="txtUsuario")
	public WebElementFacade txtUsername;
	
	@FindBy(id="txtClave")
	public WebElementFacade txtPassword;
	
	@FindBy(id="btnIniciarSesion")
	public WebElementFacade btnSignIn;

	@FindBy(xpath="/html/body/section/div[2]/div/div/div/div/div/div[1]/div/div/span")
	public WebElementFacade lblHomePpal;
	
	public void IngresarDatos(String strUsuario, String strPass){
		txtUsername.sendKeys(strUsuario);
		txtPassword.sendKeys(str<PASSWORD>);
		btnSignIn.click();
	}

	public void VerificaHome() {
		String labelv = "Visor de Almacén";
		String strMensaje = lblHomePpal.getText();
		System.out.println("------------"+strMensaje);
		assertThat(strMensaje, containsString(labelv));
	}
}
<file_sep>/automation/src/test/java/com/choucair/formacion/pageobjects/MenuPage.java
package com.choucair.formacion.pageobjects;

import org.openqa.selenium.WebElement;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.containsString;
import net.serenitybdd.core.annotations.findby.FindBy;
import net.serenitybdd.core.pages.PageObject;
import net.serenitybdd.core.pages.WebElementFacade;

public class MenuPage extends PageObject{
	
	@FindBy(xpath="/html/body/section/div[1]/div")
	public WebElement mnuForm;
	
	@FindBy(xpath="/html/body/section/div[1]/nav/ul/li/span/i")
	public WebElement mnuAlmacen;
	
	@FindBy(xpath="/html/body/section/div[1]/nav/ul/li/ul/li[1]/a")
	public WebElement mnuCategoria;
	
	@FindBy(xpath="/html/body/section/div[2]/div/div/div/div/div/div[1]/div/div")
	public WebElement lblCategoria;
	
	@FindBy(id="btnNuevo")
	public WebElementFacade btnNuevo;
	
	@FindBy(xpath="/html/body/section/div[2]/div/div/div/div/div/div[1]/div/div")
	public WebElement lblMsg;
	
	public void menuFormValidation() {
		mnuForm.click();
		mnuAlmacen.click();
		mnuCategoria.click();
		String strMensaje =lblCategoria.getText();
		String lblv ="Mantenimiento de Categoría";
		assertThat(strMensaje, containsString(lblv));
	}
	
	public void presionar_nuevo() {
		btnNuevo.click();
		String msg =lblMsg.getText();
		String lblv ="Registrar Categoría";
		assertThat(msg, containsString(lblv));
	}	
}
