/*
* Copyright (c) 2002-2009 Juwi MacMillan Group GmbH (JuwiMM)
* Bockhorn 1, 29664 Walsrode, Germany
* All rights reserved.
*
* This software is the confidential and proprietary information of JuwiMM
* ("Confidential Information"). You shall not disclose such
* Confidential Information and shall use it only in accordance with the
* terms of the license agreement you entered into with JuwiMM.
*/
package org.tizzit.cocoon.generic.acting.test;
import java.util.Map;
import org.apache.avalon.framework.parameters.Parameters;
import org.apache.cocoon.SitemapComponentTestCase;
import org.apache.cocoon.acting.AbstractAction;
import org.apache.cocoon.components.source.SourceResolverAdapter;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.excalibur.source.SourceResolver;
import org.tizzit.cocoon.generic.acting.MultiParamResourceExistsAction;
import org.tizzit.cocoon.generic.helper.MapHelper;
// TODO: Class description
/**
*
* @author <a href="mailto:eduard.siebert@juwimm.com">Eduard Siebert</a>
* company Juwi MacMillan Group GmbH, Walsrode, Germany
* @version $Id$
* @since tizzit-cocoon-components 11.11.2009
*/
public class MultiParamResourceExistsActionTest extends SitemapComponentTestCase {
private static final Log log = LogFactory.getLog(MultiParamResourceExistsActionTest.class);
private AbstractAction action = null;
private SourceResolver resolver = null;
@Override
public void setUp() throws Exception {
super.setUp();
this.action = (MultiParamResourceExistsAction) this.getBeanFactory().getBean("org.apache.cocoon.acting.Action/multiParamResourceExistsAction");
// Object a = this.lookup(CocoonSourceResolver.ROLE);
try {
this.resolver = (SourceResolver) this.lookup(SourceResolver.ROLE);
} catch (Exception exe) {
log.error(exe.getMessage(), exe);
assertTrue(false);
}
assertNotNull(this.action);
assertNotNull(this.resolver);
}
public void testSimpleCheckResource() throws Exception {
if (log.isDebugEnabled()) log.debug("testSimpleCheckResource() -> begin");
Parameters params = new Parameters();
params.setParameter("checkResource-foo", "foo/bar.xml");
Map< ? , ? > result = this.action.act(this.getRedirector(), new SourceResolverAdapter(this.resolver, this.getManager()), this.getObjectModel(), null, params);
assertEquals("foo/common.xml", result.get("foo"));
if (log.isDebugEnabled()) log.debug("testSimpleCheckResource() -> end");
}
public void testSimpleCheckResources() throws Exception {
if (log.isDebugEnabled()) log.debug("testSimpleCheckResources() -> begin");
Parameters params = new Parameters();
params.setParameter("checkResource-foo", "foo.xml");
params.setParameter("checkResource-bar", "bar.xml");
params.setParameter("checkResource-hello", "hello.xml");
params.setParameter("checkResource-world", "world.xml");
params.setParameter("checkResource-anExistingFile", prepandPath("dummy.xml"));
params.setParameter("checkResource-fooBar", "foo/bar.xml");
Map< ? , ? > result = this.action.act(this.getRedirector(), new SourceResolverAdapter(this.resolver, this.getManager()), this.getObjectModel(), null, params);
assertEquals("common.xml", result.get("foo"));
assertEquals("common.xml", result.get("bar"));
assertEquals("common.xml", result.get("hello"));
assertEquals("common.xml", result.get("world"));
assertEquals(prepandPath("dummy.xml"), result.get("anExistingFile"));
assertEquals("foo/common.xml", result.get("fooBar"));
if (log.isDebugEnabled()) log.debug("testSimpleCheckResources() -> end");
}
public void testSimpleCheckResourceWithDefaultValue() throws Exception {
if (log.isDebugEnabled()) log.debug("testSimpleCheckResourceWithDefaultValue() -> begin");
Parameters params = new Parameters();
params.setParameter("checkResource-foo", "foo/bar.xml");
params.setParameter("defaultValue-foo", "foo/myDefaultValue.xml");
Map< ? , ? > result = this.action.act(this.getRedirector(), new SourceResolverAdapter(this.resolver, this.getManager()), this.getObjectModel(), null, params);
log.info(MapHelper.mapToString(result));
assertEquals("foo/myDefaultValue.xml", result.get("foo"));
if (log.isDebugEnabled()) log.debug("testSimpleCheckResourceWithDefaultValue() -> end");
}
public void testComplexCheckResource() throws Exception {
if (log.isDebugEnabled()) log.debug("testComplexCheckResource() -> begin");
Parameters params = new Parameters();
params.setParameter("checkResource-foo-1", "foo/bar.xml");
params.setParameter("checkResource-foo-2", "foo/bar/hello.xml");
params.setParameter("checkResource-foo-3", "foo/bar/hello/world.xml");
Map< ? , ? > result = this.action.act(this.getRedirector(), new SourceResolverAdapter(this.resolver, this.getManager()), this.getObjectModel(), null, params);
assertEquals("foo/bar/hello/common.xml", result.get("foo"));
if (log.isDebugEnabled()) log.debug("testComplexCheckResource() -> end");
}
public void testComplexCheckResourceWithAvailableResource() throws Exception {
if (log.isDebugEnabled()) log.debug("testComplexCheckResourceWithAvailableResource() -> begin");
Parameters params = new Parameters();
params.setParameter("checkResource-foo-1", "foo/bar.xml");
params.setParameter("checkResource-foo-2", "foo/bar/hello.xml");
params.setParameter("checkResource-foo-3", prepandPath("dummy.xml"));
Map< ? , ? > result = this.action.act(this.getRedirector(), new SourceResolverAdapter(this.resolver, this.getManager()), this.getObjectModel(), null, params);
assertEquals(prepandPath("dummy.xml"), result.get("foo"));
if (log.isDebugEnabled()) log.debug("testComplexCheckResourceWithAvailableResource() -> end");
}
public void testComplexCheckResourceWithAvailableResource2() throws Exception {
if (log.isDebugEnabled()) log.debug("testComplexCheckResourceWithAvailableResource() -> begin");
Parameters params = new Parameters();
params.setParameter("checkResource-foo-1", "foo/bar.xml");
params.setParameter("checkResource-foo-2", "foo/bar/hello.xml");
params.setParameter("checkResource-foo-3", prepandPath("dummy.xml"));
params.setParameter("checkResource-bar-1", "foo/bar.xml");
params.setParameter("checkResource-bar-2", "foo/bar/hello.xml");
params.setParameter("checkResource-bar-3", prepandPath("dummy.xml"));
Map< ? , ? > result = this.action.act(this.getRedirector(), new SourceResolverAdapter(this.resolver, this.getManager()), this.getObjectModel(), null, params);
assertEquals(prepandPath("dummy.xml"), result.get("foo"));
assertEquals(prepandPath("dummy.xml"), result.get("bar"));
if (log.isDebugEnabled()) log.debug("testComplexCheckResourceWithAvailableResource() -> end");
}
//TODO: externalize method
private String prepandPath(String resource) {
String packagePath = this.getClass().getPackage().getName().replaceAll("\\.", "/");
return "src/test/resources/" + packagePath + "/" + resource;
}
}