<commit_before>package co.edu.uniquindio.ingesis.suturno.entidades;

import java.sql.Timestamp;
import java.util.Date;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.arquillian.persistence.UsingDataSet;
import org.jboss.arquillian.transaction.api.annotation.TransactionMode;
import org.jboss.arquillian.transaction.api.annotation.Transactional;
import org.jboss.shrinkwrap.api.Archive;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.asset.EmptyAsset;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;

import co.edu.uniquindio.ingesis.suturno.utils.EstadoTurno;
import co.edu.uniquindio.ingesis.suturno.utils.Genero;
import co.edu.uniquindio.ingesis.suturno.utils.TipoDocumento;

/*
 * Prueba TurnoTest
 * 
 * @author <NAME> y <NAME>
 * 
 * @author Ingeniera de Sistemas y Computacin
 * 
 * @author Universidad del Quindo
 * 
 * @version 1.0
 * 
 * @since 1/03/2017
 */
@RunWith(Arquillian.class)
public class TurnoTest {

	/*
	 * Variable que representa el atributo entityManager, que es al administrador de conexiones
	 */
	@PersistenceContext
	private EntityManager entityManager;

	/*
	 * Metodo estatico que permite identificar en que paquete se corre la prueba
	 */
	@Deployment
	public static Archive<?> createTestArchive() {
		return ShrinkWrap.create(WebArchive.class, "test.war").addPackage(Persona.class.getPackage())
				.addAsResource("META-INF/persistence.xml", "META-INF/persistence.xml")
				.addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml");
	}

	/**
	 * Metodo de prueba que verifica la busqueda de datos
	 */
	@Test
	@Transactional(value = TransactionMode.ROLLBACK)
	@UsingDataSet({ "datos/persona.json", "datos/empleado.json", "datos/turno.json" })
	public void findTest() {
		Turno turno = entityManager.find(Turno.class, 1);
		Assert.assertEquals(1, turno.getId());
	}

	/**
	 * Metodo de prueba que verifica la insercion de datos
	 */
	@Test
	@Transactional(value = TransactionMode.ROLLBACK)
	@UsingDataSet({ "datos/persona.json", "datos/empleado.json", "datos/turno.json" })
	public void persistTest() {

		Turno t1 = entityManager.find(Turno.class, 1);
		Turno t2 = entityManager.find(Turno.class, 2);

		Turno turno = new Turno();
		turno.setId(4);
		turno.setEstado(EstadoTurno.EN_ESPERA);
		turno.setFecha(new Timestamp(new Date().getTime()));
		turno.setNota("Nuevo Turno");
		turno.setServicio(new Servicio("12345", "Pagar", "Ultimatum de pago", true));

		Persona persona = new Persona();
		persona.setId(3);
		persona.setActivo(true);
		persona.setApellido1("Marin");
		persona.setApellido2("Perez");
		persona.setDir("Granada");
		persona.setEmail("<EMAIL>");
		persona.setGenero(Genero.FEMENINO);
		persona.setIdentificacion("9574136672");
		persona.setNombre1("Sara");
		persona.settDoc(TipoDocumento.TARJETA_IDENTIDAD);
		persona.setTel1("3206842320");
		persona.setTel2("7452310");
		persona.setCiudad(null);
		persona.setEmpleado(null);
		turno.setCliente(persona);

		entityManager.persist(turno);

		Turno registrado = entityManager.find(Turno.class, turno.getId());
		Assert.assertEquals(turno, registrado);
	}

	/**
	 * Metodo de prueba que verifica la actualizacion de datos
	 */
	@Test
	@Transactional(value = TransactionMode.ROLLBACK)
	@UsingDataSet({ "datos/persona.json", "datos/empleado.json", "datos/turno.json" })<commit_msg>Completando Prueba Turno<commit_after>package co.edu.uniquindio.ingesis.suturno.entidades;

import java.sql.Timestamp;
import java.util.Date;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.arquillian.persistence.UsingDataSet;
import org.jboss.arquillian.transaction.api.annotation.TransactionMode;
import org.jboss.arquillian.transaction.api.annotation.Transactional;
import org.jboss.shrinkwrap.api.Archive;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.asset.EmptyAsset;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;

import co.edu.uniquindio.ingesis.suturno.utils.EstadoTurno;
import co.edu.uniquindio.ingesis.suturno.utils.Genero;
import co.edu.uniquindio.ingesis.suturno.utils.TipoDocumento;

/*
 * Prueba TurnoTest
 * 
 * @author <NAME> y <NAME>
 * 
 * @author Ingeniera de Sistemas y Computacin
 * 
 * @author Universidad del Quindo
 * 
 * @version 1.0
 * 
 * @since 1/03/2017
 */
@RunWith(Arquillian.class)
public class TurnoTest {

	/*
	 * Variable que representa el atributo entityManager, que es al administrador de conexiones
	 */
	@PersistenceContext
	private EntityManager entityManager;

	/*
	 * Metodo estatico que permite identificar en que paquete se corre la prueba
	 */
	@Deployment
	public static Archive<?> createTestArchive() {
		return ShrinkWrap.create(WebArchive.class, "test.war").addPackage(Persona.class.getPackage())
				.addAsResource("META-INF/persistence.xml", "META-INF/persistence.xml")
				.addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml");
	}

	/**
	 * Metodo de prueba que verifica la busqueda de datos
	 */
	@Test
	@Transactional(value = TransactionMode.ROLLBACK)
	@UsingDataSet({ "datos/persona.json", "datos/empleado.json", "datos/turno.json" })
	public void findTest() {
		Turno turno = entityManager.find(Turno.class, 1);
		Assert.assertEquals(1, turno.getId());
	}

	/**
	 * Metodo de prueba que verifica la insercion de datos
	 */
	@Test
	@Transactional(value = TransactionMode.ROLLBACK)
	@UsingDataSet({ "datos/persona.json", "datos/empleado.json", "datos/turno.json" , "datos/servicio.json" })
	public void persistTest() {
	
		Servicio nuevoServi = entityManager.find(Servicio.class, 3);
		Persona cliente = entityManager.find(Persona.class, 2);
		Empleado thomas =  entityManager.find(Empleado.class, 2);
		

		Turno turno = new Turno();
		turno.setId(4);
		turno.setEstado(EstadoTurno.EN_ESPERA);
		turno.setFecha(new Timestamp(new Date().getTime()));
		turno.setNota("Nuevo Turno");
		turno.setServicio(nuevoServi);
		turno.setEmpleado(thomas);	
		turno.setCliente(cliente);

		entityManager.persist(turno);

		Turno registrado = entityManager.find(Turno.class, turno.getId());
		Assert.assertEquals(turno, registrado);
		
		Assert.assertTrue("Servicio no corresponde con el registrado",registrado.getServicio().getNombre().equals(nuevoServi.getNombre()));
		
		Assert.assertNotNull("Debe seleccionar un Cliente", registrado.getCliente());
		
		Assert.assertNotNull("Debe seleccionar un Empleado que va a atender solicitud", registrado.getEmpleado());
	}

	/**
	 * Metodo de prueba que verifica la actualizacion de datos
	 */
	@Test
	@Transactional(value = TransactionMode.ROLLBACK)
	@UsingDataSet({ "datos/persona.json", "datos/empleado.json", "datos/turno.json" })
{'fraction_non_alphanumeric': 0.12939841089670828, 'fraction_numerical': 0.009790011350737798, 'mean_word_length': 5.113616652211622, 'pattern_counts': {'":': 0, '<': 10, '<?xml version=': 0, '>': 10, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 6}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4673249', 'n_tokens_mistral': 2715, 'n_tokens_neox': 2535, 'n_words': 437}