Package cz.muni.fi.pa165.ddtroops.persistence

Source Code of cz.muni.fi.pa165.ddtroops.persistence.SquadDAOTest

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package cz.muni.fi.pa165.ddtroops.persistence;

import cz.muni.fi.pa165.ddtroops.daointerfaces.HeroDAO;
import cz.muni.fi.pa165.ddtroops.daointerfaces.RaceDAO;
import cz.muni.fi.pa165.ddtroops.daointerfaces.SkillDAO;
import cz.muni.fi.pa165.ddtroops.daointerfaces.SquadDAO;
import cz.muni.fi.pa165.ddtroops.entities.Gender;
import cz.muni.fi.pa165.ddtroops.entities.Hero;
import cz.muni.fi.pa165.ddtroops.entities.Race;
import cz.muni.fi.pa165.ddtroops.entities.Skill;
import cz.muni.fi.pa165.ddtroops.entities.Squad;
import java.util.List;
import junit.framework.TestCase;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.transaction.annotation.Transactional;
/**
* Testclass for SquadDAOImpl entity.
*
* @author Erik Vaněk
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:testAppContext.xml" })
@Transactional
public class SquadDAOTest extends TestCase{
    private Squad squad;
    @Autowired
    private SquadDAO squadDAO;
    @Autowired
    private RaceDAO raceDao;
    @Autowired
    private HeroDAO heroDao;
    @Autowired
    private SkillDAO skillDao;

    public Squad getSquad(){

        Race race = getRace();
        raceDao.create(race);

        Skill skill = getSkill();
        skillDao.create(skill);

        Hero leader = getHero(race, skill);
        heroDao.create(leader);

        Squad squad = new Squad();
        squad.getMembers().add(leader);
        squad.setLeader(leader);
        squad.setGold(500L);
        squad.setName("TestSquad");
        squad.setTask("Tough task");

    return squad;
    }


    @Test
    public void testHasIdAfterCreation(){
        squad = getSquad();
        squadDAO.create(squad);

        assertNotNull(squad.getId());
    }

    @Test
    public void testGetById(){
        squad = getSquad();
        squadDAO.create(squad);

        Squad squadFromDB = squadDAO.getById(squad.getId());

        assertEquals(squadFromDB, squad);
    }

    @Test
    public void testCreate(){
        squad = getSquad();
        squadDAO.create(squad);

        assertNotNull(squad.getId());
    }

    @Test
    public void testUpdate(){
        squad = getSquad();
        squadDAO.create(squad);

        squad.setTask("Tougher task");

        squadDAO.update(squad);

        Squad squadFromDB = squadDAO.getById(squad.getId());

        assertEquals("Tougher task", squad.getTask());
        assertEquals(squadFromDB.getGold(), squad.getGold());
    }

    @Test
    public void testDelete(){
        squad = getSquad();

        List<Squad> squads = squadDAO.getAll();

        for (Squad s : squads){
            squadDAO.delete(s);
        }

        List<Squad> deletedSquads = squadDAO.getAll();
        assertTrue(deletedSquads.isEmpty());
    }

    public Race getRace(){
        Race race = new Race();
        race.setName("SimpleRace");
        race.setDescription("Descript");
        race.setStrength(new Byte("61"));
        race.setDexterity(new Byte("61"));
        race.setConstitution(new Byte("15"));
        race.setIntelligence(new Byte("51"));
        race.setWisdom(new Byte("41"));
        race.setCharisma(new Byte("14"));
        return race;
    }

    public Hero getHero(Race race, Skill skill){
            Hero leader = new Hero();
        leader.setName("Híro");
        leader.setGender(Gender.MALE);
        leader.setBelief("althurist");
        leader.setProfession("Gunter");
        leader.setRace(race);
        leader.setStrength(Byte.MIN_VALUE);
        leader.setDexterity(Byte.MIN_VALUE);
        leader.setConstitution(Byte.MIN_VALUE);
        leader.setIntelligence(Byte.MIN_VALUE);
        leader.setStrength(Byte.MIN_VALUE);
        leader.setWisdom(Byte.MIN_VALUE);
        leader.setCharisma(Byte.MIN_VALUE);
        leader.addSkill(skill);
        leader.setXp(500L);

        return leader;
    }

    public Skill getSkill(){
    Skill skill = new Skill();
        skill.setDescription("Skillerx");
        skill.setName("DescSkillerx");
        skill.setMinXP(50L);
        skill.setProfession("Proff");
        return skill;
    }

    @Test
    public void testGetAll(){
        squad = getSquad();
        Race race = getRace();
        raceDao.create(race);

        Skill skill = getSkill();
        skillDao.create(skill);

        Hero leader = getHero(race, skill);
        heroDao.create(leader);

        Squad anotherSquad = new Squad();
        anotherSquad.setDescription("Newly created squad");
        anotherSquad.setGold(500L);
        anotherSquad.setName("TestSquad");
        anotherSquad.getMembers().add(leader);
        anotherSquad.setLeader(leader);
        anotherSquad.setTask("Tough task");
        squadDAO.create(squad);
        squadDAO.create(anotherSquad);

        List<Squad> squads = squadDAO.getAll();
        assertTrue(squads.contains(squad));
        assertTrue(squads.contains(anotherSquad));
    }

    @Test
    public void testAddMember(){
        Race race = getRace();
        Squad squadS = getSquad();
        Skill skill = getSkill();
        Hero leader = getHero(race, skill);

        raceDao.create(race);
        skillDao.create(skill);;
        squadDAO.create(squadS);
        heroDao.create(leader);
        squadS.getMembers().add(leader);
        assertTrue(squadS.getMembers().contains(leader));
    }

    @Test
    public void testRemoveMember(){
        Race race = getRace();
        Skill skill = getSkill();
        Hero leader = getHero(race, skill);

        squad = new Squad();
        squad.getMembers().add(leader);
        squad.setLeader(leader);
        squad.setGold(5500L);
        squad.setName("TestSquad 2");
        squad.setTask("Tougher task");

        raceDao.create(race);
        skillDao.create(skill);
        heroDao.create(leader);

        squadDAO.create(squad);
        assertTrue(squad.getMembers().contains(leader));

        squad.getMembers().remove(leader);
        assertTrue(!squad.getMembers().contains(leader));

    }

}
TOP

Related Classes of cz.muni.fi.pa165.ddtroops.persistence.SquadDAOTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.