package org.appfuse.webapp.action;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.appfuse.Constants;
import org.appfuse.model.Resume;
import org.appfuse.service.ResumeManager;


public class ResumeActionTest extends BaseStrutsTestCase {

    private Log log = LogFactory.getLog(ResumeActionTest.class);

    //~ Constructors ===========================================================

    public ResumeActionTest(String name) {
        super(name);
    }

    //~ Methods ================================================================

    public void testEdit() throws Exception {
        setRequestPathInfo("/editResume");
        addRequestParameter("action", "Edit");

        actionPerform();

        verifyForward("edit");
        assertTrue(getRequest().getAttribute(Constants.RESUME_KEY) != null);
        verifyNoActionErrors();
    }

    public void testAutoCreateResume() throws Exception {
        setRequestPathInfo("/editResume");
        addRequestParameter("action", "Edit");

        actionPerform();

        verifyForward("edit");
        Object form = getRequest().getAttribute(Constants.RESUME_KEY);
        assertTrue(form != null);
        verifyNoActionErrors();
    }

    public void testSave() throws Exception {
        ResumeManager mgr = (ResumeManager) ctx.getBean("resumeManager");
        Resume resume = (Resume) mgr.getResume("1");
        request.setAttribute(Constants.RESUME_KEY, convert(resume));

        setRequestPathInfo("/saveResume");
        addRequestParameter("action", "Save");
        actionPerform();
        verifyForward("edit");
        verifyNoActionErrors();
    }

    public void testSearch() throws Exception {
        setRequestPathInfo("/viewResumes");
        addRequestParameter("action", "Search");

        actionPerform();

        verifyForward("list");
        assertTrue(getRequest().getAttribute(Constants.USER_RESUMES) != null);
        verifyNoActionErrors();
    }

    public static void main(String[] args) {
        junit.textui.TestRunner.run(ResumeActionTest.class);
    }
}