EFF.test.Test2.java Source code

Java tutorial

Introduction

Here is the source code for EFF.test.Test2.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package EFF.test;

import edu.eci.cosw.proyecto_eff.model.PlazoletaComida;
import edu.eci.cosw.proyecto_eff.model.PlazoletaComidaId;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;

/**
 *
 * @author FabianAndres
 */
public class Test2 {
    private SessionFactory sessionFactory;
    private Session session = null;

    /**
     * Operaciones que se realizan antes de ejecutar el banco de pruebas.
     * En este caso se crea una misma sesin que ser usada en todas las
     * pruebas.
     */
    @Before
    public void setupSession() {

        Configuration configuration = new Configuration();
        configuration.configure("hibernate-inmemory.cfg.xml");
        ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties())
                .buildServiceRegistry();
        sessionFactory = configuration.buildSessionFactory(serviceRegistry);
        session = sessionFactory.openSession();

    }

    /**
     * Operaciones que se realizan cuando finalice la ejecucin de las pruebas.
     * En este caso se cierra la sesi_n y la f_brica de sesiones.
     */
    @After
    public void closeResources() {
        session.close();
        sessionFactory.close();
    }

    /**
     * El objetivo de esta prueba es que se puede identificar el centro comercial
     * a partir de coordenadas geogrficas (grados, minutos, segundos).
     * 
     */
    @Test
    public void segundoTest() {
        Transaction tx = session.beginTransaction();
        PlazoletaComida plazoleta = new PlazoletaComida(new PlazoletaComidaId("C.C. Santa fe", "Bogot"), 40, 40,
                35, 'W', 40, 40, 65, 'N', 5);
        session.save(plazoleta);

        PlazoletaComida plazoletaAux = identificarPlazoleta(session, 40, 40, 32, 'W', 40, 40, 63, 'N');

        Assert.assertEquals(plazoleta, plazoletaAux);

        tx.commit();
    }

    public PlazoletaComida identificarPlazoleta(Session s, float gradosLon, float minutosLon, float segundosLon,
            char orientacionLon, float gradosLat, float minutosLat, float segundosLat, char orientacionLat) {

        Query q = s.createQuery("from PlazoletaComida where gradosLon=:gradosLon AND "
                + "minutosLon=:minutosLon AND segundosLon - radio <=:segundosLon AND "
                + "segundosLon + radio >=:segundosLon AND orientacionLon=:orienteacionLon AND "
                + "gradosLat=:gradosLat AND minutosLat=:minutosLat "
                + "AND segundosLat - radio <=:segundosLat AND segundosLat + radio >=:segundosLat "
                + "AND orientacionLat=:orienteacionLat");
        q.setFloat("gradosLon", gradosLon);
        q.setFloat("minutosLon", minutosLon);
        q.setFloat("segundosLon", segundosLon);
        q.setCharacter("orienteacionLon", orientacionLon);

        q.setFloat("gradosLat", gradosLat);
        q.setFloat("minutosLat", minutosLat);
        q.setFloat("segundosLat", segundosLat);
        q.setCharacter("orienteacionLat", orientacionLat);
        List<PlazoletaComida> list = q.list();

        return list.get(0);

    }

}