package com.lateensoft.pathfinder.toolkit.db.dao.table; import com.lateensoft.pathfinder.toolkit.dao.DataAccessException; import com.lateensoft.pathfinder.toolkit.model.character.stats.Ability; import com.lateensoft.pathfinder.toolkit.model.character.stats.AbilitySet; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.Robolectric; import org.robolectric.RobolectricTestRunner; import org.robolectric.annotation.Config; import java.util.List; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.hasItems; import static org.junit.Assert.assertEquals; @Config(manifest=Config.NONE) @RunWith(RobolectricTestRunner.class) public class AbilityDAOTest extends CharacterComponentDAOTest { private Ability m_ability; private AbilityDAO dao; @Override public void setUp() throws Exception { super.setUp(); dao = new AbilityDAO(Robolectric.application); m_ability = dao.findAllForOwner(getTestCharacterId()).get(2); } @Test public void findAbility() { Ability queried = dao.find(getTestCharacterId(), m_ability.getType()); assertEquals(m_ability, queried); } @Test public void testUpdate() throws DataAccessException { Ability toUpdate = new Ability(m_ability.getType(), 8, -2); dao.update(getTestCharacterId(), toUpdate); Ability updated = dao.find(getTestCharacterId(), m_ability.getType()); assertEquals(updated, toUpdate); } @Test public void findAllForCharacter() { List<Ability> foundAbilities = dao.findAllForOwner(getTestCharacterId()); AbilitySet abilitySet = getTestCharacter().getAbilitySet(); assertThat(abilitySet, hasItems(foundAbilities.toArray(new Ability[foundAbilities.size()]))); } }