package sushi.persistence.test;
import static org.junit.Assert.assertTrue;
import java.util.ArrayList;
import org.junit.Before;
import org.junit.Test;
import sushi.event.SushiEventType;
import sushi.persistence.Persistor;
import sushi.visualisation.SushiEventView;
/**
* This class tests the saving, finding and removing of {@link SushiEventView}.
*/
public class EventViewPersistenceTest implements PersistenceTest {
private SushiEventType eventType;
private SushiEventView view;
@Before
public void setup(){
Persistor.useTestEnviroment();
}
private void storeExampleView() {
eventType = new SushiEventType("Tsun");
eventType.save();
ArrayList<SushiEventType> types = new ArrayList<SushiEventType>();
types.add(eventType);
view = new SushiEventView(null, types, null);;
view.save();
}
@Override
@Test
public void testStoreAndRetrieve() {
storeExampleView();
assertTrue("Value should be 1, but was " + SushiEventView.findAll().size(),SushiEventView.findAll().size()==1);
SushiEventView.removeAll();
assertTrue("Value should be 0, but was " + SushiEventView.findAll().size(),SushiEventView.findAll().size()==0);
}
@Override
@Test
public void testFind() {
storeExampleView();
assertTrue(SushiEventView.findByID(view.getID()) == view);
}
@Test
public void testFindByEventType() {
storeExampleView();
assertTrue("should have been 1, but was " + SushiEventView.findByEventType(eventType).size(), (SushiEventView.findByEventType(eventType)).size() == 1);
assertTrue(SushiEventView.findByEventType(eventType).toString(), (SushiEventView.findByEventType(eventType)).get(0).getID() == view.getID());
}
@Override
@Test
public void testRemove() {
storeExampleView();
view.remove();
assertTrue(SushiEventView.findByID(view.getID()) != view);
}
@Test
public void testDeleteEventType() {
storeExampleView();
eventType.remove();
assertTrue( SushiEventType.findByID(eventType.getID()) == null || ! SushiEventType.findByID(eventType.getID()).getTypeName().equals(eventType.getTypeName()));
}
}