package com.lateensoft.pathfinder.toolkit.db.dao.table; import com.lateensoft.pathfinder.toolkit.dao.DataAccessException; import com.lateensoft.pathfinder.toolkit.model.character.stats.AbilityType; import com.lateensoft.pathfinder.toolkit.model.character.stats.Skill; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.Robolectric; import org.robolectric.RobolectricTestRunner; import org.robolectric.annotation.Config; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; @Config(manifest=Config.NONE) @RunWith(RobolectricTestRunner.class) public class SkillDAOTest extends CharacterComponentDAOTest { private Skill skill; private SkillDAO dao; @Override public void setUp() throws Exception { super.setUp(); initAndTestValidFindAndUpdate(); } private void initAndTestValidFindAndUpdate() throws DataAccessException { dao = new SkillDAO(Robolectric.application); skill = dao.findAllForOwner(getTestCharacterId()).get(3); skill.setMiscMod(8); skill.setAbility(AbilityType.CHA); skill.setRank(5); skill.setClassSkill(true); skill.setSubType("sub"); dao.update(getTestCharacterId(), skill); assertEquals(skill, dao.find(skill.getId())); } @Test public void findInvalid() { assertNull(dao.find(-1L)); } @Test(expected = DataAccessException.class) public void addInvalid() throws DataAccessException { dao.add(getTestCharacterId(), skill); } @Test(expected = DataAccessException.class) public void updateInvalid() throws DataAccessException { skill.setId(-1L); dao.update(-1L, skill); } @Test public void removeValid() throws DataAccessException { dao.remove(skill); assertNull(dao.find(skill.getId())); } @Test(expected = DataAccessException.class) public void removeInvalid() throws DataAccessException { dao.remove(skill); dao.remove(skill); } }