package models; import org.junit.Test; import util.InMemoryDbTest; import javax.persistence.PersistenceException; import java.util.List; import static org.junit.Assert.*; public class PositionModelTest extends InMemoryDbTest { @Test public void testFindAllPositions() { List<PositionModel> positionModels = PositionModel.find.all(); assertNotNull("PositionModels null", positionModels); assertEquals("PositionModels count", 14, positionModels.size()); } @Test public void testFindById() { PositionModel model = PositionModel.find.byId(1L); assertNotNull("PositionModel null", model); assertEquals("PositionModel name ", "Ekofisk", model.name); assertTrue("PositionModel latitude", Math.abs(model.latitude - 55.898853) < 0.00001); assertTrue("PositionModel longitude", Math.abs(model.longitude - 3.100606) < 0.00001); assertNotNull("PositionModel tags null", model.tags); assertEquals("PositionModel tags", 3 ,model.tags.size()); } @Test public void testAddNewTag(){ PositionModel model = PositionModel.findByName("Gullfaks"); PositionTagModel tag = new PositionTagModel("Test"); List<PositionTagModel> allTags = PositionTagModel.find.all(); assertEquals("# all tags", 6, allTags.size()); model.tags.add(tag); model.save(); PositionModel model2 = PositionModel.find.byId(2L); assertEquals("# tags", 4, model2.tags.size()); allTags = PositionTagModel.find.all(); assertEquals("# tags",7,allTags.size()); } @Test public void testAddExistingTag(){ PositionModel model = PositionModel.findByName("Gullfaks"); PositionTagModel tag = PositionTagModel.findByName("Atlanterhavet"); model.tags.add(tag); model.save(); PositionModel model2 = PositionModel.find.byId(2L); assertEquals("# tags",4,model2.tags.size()); } @Test(expected = PersistenceException.class) public void testSaveTwoWithSameName() { PositionModel model = PositionModel.find.byId(1L); PositionModel model2 = new PositionModel(); model2.name = model.name; model2.save(); } @Test public void testAddPositionTag(){ PositionModel position = PositionModel.find.byId(1L); int numTags = position.tags.size(); position.tags.add(new PositionTagModel("Dummy")); position.save(); PositionModel p2 = PositionModel.find.byId(1L); assertEquals("Number of tags increased by 1", numTags + 1, p2.tags.size()); } @Test public void testChangePositionTag(){ PositionModel position = PositionModel.find.byId(1L); int numTags = position.tags.size(); PositionTagModel[] tags = position.tags.toArray(new PositionTagModel[numTags]); position.tags.remove(tags[0]); // remove first tag position.tags.add(new PositionTagModel("ZZZ")); position.save(); PositionModel p2 = PositionModel.find.byId(1L); assertEquals("Number of tags unchanged", numTags , p2.tags.size()); PositionTagModel[] tags2 = p2.tags.toArray(new PositionTagModel[numTags]); assertEquals("TagName", "ZZZ",tags2[numTags-1].name); } }