package testUnitaire.database.crud.alltest;

import java.sql.Date;
import java.sql.SQLException;

import org.junit.Before;
import org.junit.Test;

import testUnitaire.database.crud.testCrud;
import database.crud.reservation.ReservationCrud;
import database.dataset.Reservation;

public class testCrudReservationGeneral extends testCrud<Reservation> {
  
	@Override
	@Before
	public void init() throws SQLException {
		setCrud(new ReservationCrud(getConnection()));
		setDataset(new Reservation(magicID, magicID, Date.valueOf("2012-05-05"), Date.valueOf("2012-05-07"), "un commentaire de qualiter", magicID));
		setDataset2(new Reservation(magicID+1, magicID, Date.valueOf("2012-05-05"), Date.valueOf("2012-05-07"), "un commentaire de qualiter", magicID));
	}
	
	@Test(expected = SQLException.class)  
	public void insertionDuneFKstatusNonValide() throws SQLException {  
		getCrud().create(new Reservation(magicID-1, 
				                         magicID, 
				                         Date.valueOf("2012-05-05"), 
				                         Date.valueOf("2012-05-05"), 
				                         "un commentaire de qualiter", 
				                         magicID+1));
	}
	
	@Test
	public void testDeReadByFkChambre() throws SQLException{
		for (Reservation r :((ReservationCrud)getCrud()).readBychambre_fk(magicID))
			System.out.println(r.toString());
	}
	
	@Test
	public void testDeReadByFkStatus() throws SQLException{
		for (Reservation r :((ReservationCrud)getCrud()).readBystatus_fk(magicID))
			System.out.println(r.toString());
	}

}
