NIHVIVO-3729 Modify ProptyListConfig so it doesn't rely on the FreemarkerConfiguration being stored as a request attribute, but so it can still be stubbed out for unit tests.

This commit is contained in:
j2blake 2012-04-20 19:26:59 +00:00
parent e3d2a8fb47
commit 68f88fe257
3 changed files with 42 additions and 13 deletions

View file

@ -37,10 +37,9 @@ import edu.cornell.mannlib.vitro.webapp.beans.IndividualImpl;
import edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
import edu.cornell.mannlib.vitro.webapp.web.templatemodels.BaseTemplateModel;
import edu.cornell.mannlib.vitro.webapp.web.templatemodels.customlistview.InvalidConfigurationException;
import edu.cornell.mannlib.vitro.webapp.web.templatemodels.customlistview.PropertyListConfig;
import freemarker.template.Configuration;
import freemarker.cache.TemplateLoader;
public class ObjectPropertyTemplateModel_PropertyListConfigTest extends
AbstractTestClass {
@ -135,11 +134,11 @@ public class ObjectPropertyTemplateModel_PropertyListConfigTest extends
subject = new IndividualImpl();
Configuration fmConfig = new Configuration();
vreq.setAttribute("freemarkerConfig", fmConfig);
// We need a stub TemplateLoader because PropertyListConfig will check
// to see whether the template name is recognized. How can we get around
// that? This will do for now.
tl = new TemplateLoaderStub();
tl.createTemplate("propStatement-default.ftl", "");
fmConfig.setTemplateLoader(tl);
}
@AfterClass
@ -564,7 +563,7 @@ public class ObjectPropertyTemplateModel_PropertyListConfigTest extends
// Supporting classes
// ----------------------------------------------------------------------
private static class NonCollatingOPTM extends ObjectPropertyTemplateModel {
private class NonCollatingOPTM extends ObjectPropertyTemplateModel {
NonCollatingOPTM(ObjectProperty op, Individual subject,
VitroRequest vreq, boolean editing)
throws InvalidConfigurationException {
@ -581,13 +580,18 @@ public class ObjectPropertyTemplateModel_PropertyListConfigTest extends
return false;
}
@Override
protected TemplateLoader getFreemarkerTemplateLoader() {
return ObjectPropertyTemplateModel_PropertyListConfigTest.this.tl;
}
}
/*
* No populated properties and we don't do syntax checking on the select
* query.
*/
private static class SimpleCollatingOPTM extends
private class SimpleCollatingOPTM extends
CollatedObjectPropertyTemplateModel {
SimpleCollatingOPTM(ObjectProperty op, Individual subject,
VitroRequest vreq, boolean editing)
@ -601,10 +605,15 @@ public class ObjectPropertyTemplateModel_PropertyListConfigTest extends
return null;
}
@Override
protected TemplateLoader getFreemarkerTemplateLoader() {
return ObjectPropertyTemplateModel_PropertyListConfigTest.this.tl;
}
}
/** No populated properties but we do check the syntax of the select query. */
private static class CheckingCollatingOPTM extends
private class CheckingCollatingOPTM extends
CollatedObjectPropertyTemplateModel {
CheckingCollatingOPTM(ObjectProperty op, Individual subject,
VitroRequest vreq, boolean editing)
@ -613,6 +622,11 @@ public class ObjectPropertyTemplateModel_PropertyListConfigTest extends
.<ObjectProperty> emptyList());
}
@Override
protected TemplateLoader getFreemarkerTemplateLoader() {
return ObjectPropertyTemplateModel_PropertyListConfigTest.this.tl;
}
}
/** Does not implement the required interface. */