package org.appfuse.webapp.action;


import org.appfuse.Constants;
import org.appfuse.model.Template;
import org.appfuse.service.TemplateManager;


public class TemplateActionTest extends BaseStrutsTestCase {
    //~ Constructors ===========================================================

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

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

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

        actionPerform();

        verifyForward("edit");
        assertTrue(request.getAttribute(Constants.TEMPLATE_KEY) != null);
        verifyNoActionErrors();
    }
    
    public void testSave() throws Exception {
        TemplateManager mgr = (TemplateManager) ctx.getBean("templateManager");
        Template template = (Template) mgr.getTemplate("1");
        request.setAttribute(Constants.TEMPLATE_KEY, convert(template));

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

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

        actionPerform();

        verifyForward("list");
        assertTrue(request.getAttribute(Constants.TEMPLATE_LIST) != null);
        verifyNoActionErrors();
    }

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