package pruebas;
import java.sql.Date;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.GregorianCalendar;
import java.util.Vector;
import java.sql.Date;
import casarural.GestorOfertas;
import casarural.GestorReservas;
import accesoDatos.GestorBD;
import junit.framework.TestCase;
/**
* @author Iraitz
*/
public class TestAnularReserva extends TestCase {
/**
* @uml.property name="gestorBD"
* @uml.associationEnd
*/
private GestorBD gestorBD;
/**
* @uml.property name="gestorReservas"
* @uml.associationEnd
*/
private GestorReservas gestorReservas;
/**
* @uml.property name="gestorOfertas"
* @uml.associationEnd
*/
private GestorOfertas gestorOfertas;
/**
* @param name
*/
public TestAnularReserva(String name) {
super(name);
}
/*
* (non-Javadoc)
*
* @see junit.framework.TestCase#setUp()
*/
protected void setUp() throws Exception {
super.setUp();
gestorBD = GestorBD.getInstance();
gestorReservas= GestorReservas.getInstance();
gestorOfertas= GestorOfertas.getInstance();
gestorBD.reiniciarBD();
}
/*
* (non-Javadoc)
*
* @see junit.framework.TestCase#tearDown()
*/
protected void tearDown() throws Exception {
super.tearDown();
this.gestorBD = null;
this.gestorReservas=null;
this.gestorOfertas=null;
}
private java.sql.Date fecha(int year,int month,int day){
return new java.sql.Date((new GregorianCalendar(year, month-1, day)).getTime().getTime());
}
//GestorBD
/**
* En esta prueba se verifica que el precio total de la Reserva con NumReserva=2
* sea igual a 150�.
*/
public void test_obtenerPrecioTotal(){
int numReserva = 2;
float esperado = 150;
//Ejecutar test
float obtenido;
try {
obtenido = gestorBD.obtenPrecioTotal(numReserva);
assertEquals("No coincide el precio!",esperado,obtenido);
} catch (SQLException e) {
fail("No existe la reserva, pero el m�todo funciona bien");
}
}
/**
* En esta prueba ,que se realiza sobre una Reserva que no existe,
* salta una Exception que indica que la reserva indicada no existe.
*/
public void test_obtenerPrecioTotal_ReservaNoExiste(){
int numReserva = 9;
float esperado = 0;
//Ejecutar test
float obtenido;
try {
obtenido = gestorBD.obtenPrecioTotal(numReserva);
fail("Error en la obtencion de los datos de la BD!");
} catch (SQLException e) {
assertTrue(true);
}
}
/**
* En esta prueba se verifica que, para la Reserva con NumReserva=2,
* devuelva 2, que es el numero de ofertas asociadas a dicha reserva.
*/
public void test_actualizarOfertas(){
int numReserva =2;
int esperado = 2;
//Ejecutar Test
try{
int obtenido = gestorBD.actualizarOfertas(numReserva);
assertEquals("Error en la Actualizaci�n de la BD!",esperado,obtenido);
}
catch (SQLException e) {
fail("No existe la reserva, pero el m�todo funciona bien");
}
}
/**
* En esta prueba se verifica que, para la Reserva con NumReserva=14,
* que no existe, salte una Exception que indica que esa Reserva no tiene
* ninguna oferta asociada.
*/
public void test_actualizarOfertas_ReservaSinOferta(){
int numReserva =14;
//GregorianCalendar fecha = new GregorianCalendar(2008, 4, 23);
int esperado =0;
//Ejecutar Test
try{
int obtenido = gestorBD.actualizarOfertas(numReserva);
assertEquals("Error en la Actualizaci�n de la BD!",esperado,obtenido);
}
catch (SQLException e) {
fail(e.getMessage());
}
}
/**
* En esta prueba se verifica que, para la Reserva con NumReserva=3,
* devuelva 1, que es el n�mero de filas afectadas en la BD.
*/
public void test_ActualizarReservas(){
int numReserva =3;
int esperado = 1;
//Ejecutar Test
try{
int obtenido = gestorBD.actualizarReservas(numReserva);
assertEquals("Error al Actualizar la BD!",esperado,obtenido);
}
catch (SQLException e) {
fail("No existe la reserva, pero el m�todo funciona bien");
}
}
/**
* En esta prueba se verifica que, para la Reserva con NumReserva=9,
* que no existe, salte una Exception que indica que esa reserva no existe.
*/
public void test_ActualizarReservas_ReservaNoexiste(){
int numReserva =9;
int esperado = 0;
//Ejecutar Test
try{
int obtenido = gestorBD.actualizarReservas(numReserva);
assertEquals("Error al Actualizar la BD!",esperado,obtenido);
}
catch (SQLException e) {
fail("No existe la reserva, pero el m�todo funciona bien");
}
}
/**
* En esta prueba se verifica que, para la Reserva con NumReserva=4,
* devuelva la fecha (2008, 5, 16), que es la correspondiente al dia de inicio
* de la oferta que antes empieza de las asociadas a esa reserva.
*/
public void test_obtenDiaIniMinBD(){
int numReserva=4;
GregorianCalendar esperado = new GregorianCalendar(2008, 4, 12);
//Ejecutar Test
GregorianCalendar obtenido;
try {
obtenido = gestorBD.obtenDiaIniMinBD(numReserva);
assertEquals("Error en la obtencion de los datos de la BD!",esperado,obtenido);
} catch (SQLException e) {
// TODO Auto-generated catch block
fail(e.getMessage());
}
}
/**
* En esta prueba se verifica que, para la Reserva con NumReserva=9,
* que no existe, salte una Exception que indica que esa reserva no existe.
*/
public void test_obtenDiaIniMinBD_ReservaNoExiste(){
int numReserva=9;
GregorianCalendar esperado = new GregorianCalendar(0, 0, 0);
//Ejecutar Test
try{
GregorianCalendar obtenido = gestorBD.obtenDiaIniMinBD(numReserva);
fail("No existe la reserva, pero el m�todo funciona bien");
}
catch (SQLException e) {
assertTrue(true);
}
}
//Gestor Ofertas
/**
* En esta prueba se verifica que, para la Reserva con NumReserva=5,
* devuelva la fecha (2008, 5, 5), que es la correspondiente al dia de inicio
* de la oferta que antes empieza de las asociadas a esa reserva.
*/
public void test_ObtenDiaIniMin(){
int numReserva=5;
GregorianCalendar esperado = new GregorianCalendar(2008, 4, 5);
//Ejecutar Test
GregorianCalendar obtenido;
try {
obtenido = gestorOfertas.obtenDiaIniMin(numReserva);
assertEquals("La fecha no coincide!",esperado,obtenido);
} catch (Exception e) {
fail(e.getMessage());
}
}
/**
* En esta prueba se verifica que, para la Reserva con NumReserva=9,
* que no existe, salte una Exception que indica que esa reserva no existe.
*/
public void test_ObtenDiaIniMin_ReservaNoExiste(){
int numReserva=25;
GregorianCalendar esperado = new GregorianCalendar(0, 0, 0);
//Ejecutar Test
GregorianCalendar obtenido;
try {
obtenido = gestorOfertas.obtenDiaIniMin(numReserva);
fail("La reserva existe en BD!");
} catch (Exception e) {
assertTrue(true);
}
}
//Gestor Reservas
/**
* En esta prueba se verifica que, para la Reserva con NumReserva=5, se anule.
* Para ello se compara el estado anterior y posterior de la BD.
*
*/
public void test_AnularReserva(){
int numReserva=5;
try {
String consultaobt = "SELECT COUNT(*) FROM reserva WHERE Anulado=1";
ResultSet rsobt = gestorBD.hacerConsulta(consultaobt);
rsobt.next();
int esperado = rsobt.getInt(1);
gestorReservas.anularReserva(numReserva);
String consultaesp = "SELECT COUNT(*) FROM reserva WHERE Anulado=1";
ResultSet rsesp = gestorBD.hacerConsulta(consultaesp);
rsesp.next();
int obtenido = rsesp.getInt(1);
assertEquals("No se ha anulado la Reserva",esperado, obtenido-1);
} catch (Exception e) {
fail(e.getMessage());
}
}
/**
* En esta prueba se verifica que, el estado anterior y posterior de la BD despu�s
* de Anular Reserva de una Reserva que no existe, son iguales.
*
*/
public void test_AnularReservaNoExiste(){
int numReserva =25;
try {
String consultaobt = "SELECT COUNT(*) FROM reserva WHERE Anulado=1";
ResultSet rsobt = gestorBD.hacerConsulta(consultaobt);
rsobt.next();
int esperado = rsobt.getInt(1);
gestorReservas.anularReserva(numReserva);
String consultaesp = "SELECT COUNT(*) FROM reserva WHERE Anulado=1";
ResultSet rsesp = gestorBD.hacerConsulta(consultaesp);
rsesp.next();
int obtenido = rsesp.getInt(1);
fail("La reserva no existe!");
} catch (Exception e) {
assertTrue(true);
}
}
}