package org.appfuse.persistence;

import java.util.List;

import org.apache.commons.logging.LogFactory;
import org.appfuse.model.ResumeSkill;


public class SkillDAOTest extends BaseDAOTestCase {
    //~ Instance fields ========================================================

    private ResumeSkill resumeSkill = null;
    private SkillDAO dao = null;

    protected void setUp() throws Exception {
        log = LogFactory.getLog(SkillDAOTest.class);
        dao = (SkillDAO) ctx.getBean("skillDAO");
    }

    protected void tearDown() throws Exception {
        dao = null;
    }

    // =========== Begin of Resume Skill tests =========================== //
    
    public void testGetResumeSkill() throws Exception {
        resumeSkill = dao.getResumeSkill(new Long(1));
        log.info(resumeSkill);
        assertTrue(resumeSkill.getName() != null);
    }

    public void testGetResumeSkills() throws Exception {
        List skills = dao.getResumeSkills(new Long(1));
        assertTrue(skills.size() > 0);
    }

    public void testSaveResumeSkill() throws Exception {
        resumeSkill = dao.getResumeSkill(new Long(1));

        String name = resumeSkill.getName();
        resumeSkill.setName("JUnit");

        resumeSkill = dao.saveResumeSkill(resumeSkill);

        if (log.isDebugEnabled()) {
            log.debug("updated skill: " + resumeSkill);
        }

        assertEquals(resumeSkill.getName(), "JUnit");
    }

    public void testAddAndRemoveResumeSkill() throws Exception {
        resumeSkill = new ResumeSkill();
        resumeSkill.setResumeId(new Long(1));
        resumeSkill.setName("Excel");
        resumeSkill.setLastUsed("6 months ago");
        resumeSkill.setYearsExperience(Integer.valueOf("5"));

        resumeSkill = dao.saveResumeSkill(resumeSkill);
        assertTrue(resumeSkill.getName().equals("Excel"));
        assertTrue(resumeSkill.getId() != null);

        if (log.isDebugEnabled()) {
            log.debug("removing skill...");
        }

        dao.removeResumeSkill(resumeSkill);
    }
    public static void main(String[] args) {
        junit.textui.TestRunner.run(SkillDAOTest.class);
    }
}