/*
This file is part of OpenMyEWB.
OpenMyEWB is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenMyEWB is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with OpenMyEWB. If not, see <http://www.gnu.org/licenses/>.
OpenMyEWB is Copyright 2005-2009 Nicolas Kruchten (nicolas@kruchten.com), Francis Kung, Engineers Without Borders Canada, Michael Trauttmansdorff, Jon Fishbein, David Kadish
*/
package ca.myewb.tests;
import junit.framework.TestCase;
import org.hibernate.Session;
import org.hibernate.Transaction;
import ca.myewb.frame.HibernateUtil;
import ca.myewb.model.PlacementModel;
import ca.myewb.model.UserModel;
public class PlacementTest extends TestCase
{
Session session;
Transaction tx;
public void setUp()
{
try
{
// Register DB
Class.forName("com.mysql.jdbc.Driver");
// Start a Hibernate session
HibernateUtil.createFactory("test");
session = HibernateUtil.currentSession();
tx = session.beginTransaction();
}
catch (Exception e)
{
System.err.println("Exception " + e);
e.printStackTrace();
}
}
public void tearDown()
{
try
{
tx.commit();
HibernateUtil.closeSession();
}
catch (Exception e)
{
System.err.println("Excpetion: " + e);
e.printStackTrace();
}
}
// Test general getters/setters
public void testGeneral()
{
try
{
PlacementModel p = PlacementModel.newPlacementModel();
Integer i = p.getId();
UserModel u = UserModel.newAssociateSignUp("a@b.com", "Test", "User", "123456");
u.assignPlacement(p);
// New object to make sure info was written to database
PlacementModel p2 = (PlacementModel)session.load(PlacementModel.class, i);
assertTrue(p2.getOv().equals(u));
assertTrue(u.getPlacements().contains(p2));
}
catch (Exception e)
{
System.err.println("Exception caught: " + e.getMessage());
e.printStackTrace();
}
}
public void testNewPlacement()
{
PlacementModel p = PlacementModel.newPlacementModel();
assertNotNull("Placement should exist", p);
int id = p.getId();
PlacementModel p2 = (PlacementModel)session.load(PlacementModel.class, id);
assertFalse("The placement should be initialized to be inactive", p2.isActive());
assertFalse("The placement should not be deleted", p2.isDeleted());
}
public void testSave()
{
PlacementModel p = PlacementModel.newPlacementModel();
p.save("Test Placement", "0001", "17-07-2007", "17-08-2007", "Somewhere", "Someplace", "It'll be fun!", true);
int id = p.getId();
PlacementModel p2 = (PlacementModel)session.load(PlacementModel.class, id);
assertEquals("The placement name should be what was set", "Test Placement", p2.getName());
assertEquals("The placement accounting id should be what was set", "0001", p2.getAccountingid());
assertEquals("The placement start date should be what was set", "17-07-2007", p2.getStartdate());
assertEquals("The placement end date should be what was set", "17-08-2007", p2.getEnddate());
assertEquals("The placement country should be what was set", "Somewhere", p2.getCountry());
assertEquals("The placement town should be what was set", "Someplace", p2.getTown());
assertEquals("The placement description should be what was set", "It'll be fun!", p2.getDescription());
}
public void testDeactivate()
{
PlacementModel p = PlacementModel.newPlacementModel();
int id = p.getId();
p.setActive(true);
p.deactivate();
PlacementModel p2 = (PlacementModel)session.load(PlacementModel.class, id);
assertFalse("The placement should be decativated", p2.isActive());
}
public void testDelete()
{
PlacementModel p = PlacementModel.newPlacementModel();
int id = p.getId();
p.delete();
PlacementModel p2 = (PlacementModel)session.load(PlacementModel.class, id);
assertTrue("The placement should be deleted", p2.isDeleted());
}
}