freemarker-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ddek...@apache.org
Subject [07/51] [abbrv] [partial] incubator-freemarker git commit: Restructured project so that freemarker-test-utils depends on freemarker-core (and hence can provide common classes for testing templates, and can use utility classes defined in the core). As a c
Date Mon, 15 May 2017 21:23:23 GMT
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/28a276c8/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/TemplateTestSuite.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/TemplateTestSuite.java b/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/TemplateTestSuite.java
deleted file mode 100644
index 0edae99..0000000
--- a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/TemplateTestSuite.java
+++ /dev/null
@@ -1,298 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.freemarker.test.templatesuite;
-
-import java.io.IOException;
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.regex.Pattern;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-
-import org.apache.freemarker.core.Configuration;
-import org.apache.freemarker.core.Version;
-import org.apache.freemarker.core.util._StringUtil;
-import org.apache.freemarker.dom.NodeModel;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.xml.sax.SAXException;
-
-import junit.framework.TestSuite;
-
-/**
- * Test suite where the test cases are defined in testcases.xml, and usually process
- * templates and compare their output with the expected output.
- * 
- * If you only want to run certain tests, you can specify a regular expression for
- * the test name in the {@link #TEST_FILTER_PROPERTY_NAME} system property.
- */
-public class TemplateTestSuite extends TestSuite {
-    
-    private static final String ELEM_TEST_CASE = "testCase";
-
-    private static final String ELEM_SETTING = "setting";
-
-    private static final String ATTR_NO_OUTPUT = "noOutput";
-
-    private static final String ATTR_EXPECTED = "expected";
-
-    private static final String ATTR_TEMPLATE = "template";
-
-    private static final String END_TEMPLATE_NAME_MARK = "[#endTN]";
-
-    public static final String CONFIGURATION_XML_FILE_NAME = "testcases.xml";
-
-    /**
-     * When setting this system property, only the tests whose name matches the
-     * given regular expression will be executed.
-     */
-    public static final String TEST_FILTER_PROPERTY_NAME = "freemareker.templateTestSuite.testFilter";
-    
-    /**
-     * Comma separated list of "incompatible improvements" versions to run the test cases with.
-     */
-    public static final String INCOMPATIBLE_IMPROVEMENTS_PROPERTY_NAME
-            = "freemareker.templateTestSuite.incompatibleImprovements";
-    
-    private final Map<String, String> testSuiteSettings = new LinkedHashMap<>();
-
-    private final ArrayList<Version> testSuiteIcis;
-
-    private final Pattern testCaseNameFilter;
-    
-    public static TestSuite suite() throws Exception {
-        return new TemplateTestSuite();
-    }
-    
-    public TemplateTestSuite() throws Exception {
-        NodeModel.useJaxenXPathSupport();
-        
-        String filterStr = System.getProperty(TEST_FILTER_PROPERTY_NAME);
-        testCaseNameFilter = filterStr != null ? Pattern.compile(filterStr) : null;
-        if (testCaseNameFilter != null) {
-            System.out.println("Note: " + TEST_FILTER_PROPERTY_NAME + " is " + _StringUtil.jQuote(testCaseNameFilter));
-        }
-        
-        testSuiteIcis = new ArrayList<>();
-        String testedIcIsStr = System.getProperty(INCOMPATIBLE_IMPROVEMENTS_PROPERTY_NAME);
-        if (testedIcIsStr != null) {
-            for (String iciStr : testedIcIsStr.split(",")) {
-                iciStr = iciStr.trim();
-                if (iciStr.length() != 0) {
-                    testSuiteIcis.add(new Version(iciStr));
-                }
-            }
-        }
-        if (testSuiteIcis.isEmpty()) {
-            testSuiteIcis.add(getMinIcIVersion());
-            testSuiteIcis.add(getMaxIcIVersion());
-        }
-        
-        java.net.URL url = TemplateTestSuite.class.getResource(CONFIGURATION_XML_FILE_NAME);
-        if (url == null) {
-            throw new IOException("Resource not found: "
-                    + TemplateTestSuite.class.getName() + ", " + CONFIGURATION_XML_FILE_NAME);
-        }
-        processConfigXML(url.toURI());
-    }
-    
-    /**
-     * Read the test case configurations file and build up the test suite.
-     */
-    public void processConfigXML(URI uri) throws Exception {
-        Element testCasesElem = loadXMLFromURL(uri);
-        
-        NodeList children = testCasesElem.getChildNodes();
-        for (int childIdx = 0; childIdx < children.getLength(); childIdx++) {
-            Node n = children.item(childIdx);
-            if (n.getNodeType() == Node.ELEMENT_NODE) {
-                final String nodeName = n.getNodeName();
-                if (nodeName.equals(ELEM_SETTING)) {
-                    NamedNodeMap attrs = n.getAttributes();
-                    for (int attrIdx = 0; attrIdx < attrs.getLength(); attrIdx++) {
-                        Attr attr = (Attr) attrs.item(attrIdx);
-                        testSuiteSettings.put(attr.getName(), attr.getValue());
-                    }
-                } else if (nodeName.equals(ELEM_TEST_CASE)) {
-                    for (TemplateTestCase testCase : createTestCasesFromElement((Element) n)) {
-                        addTest(testCase);
-                    }
-                }
-            }
-        }
-    }
-
-    private Element loadXMLFromURL(URI uri) throws ParserConfigurationException, SAXException, IOException {
-        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
-        // dbf.setValidating(true);
-        DocumentBuilder db = dbf.newDocumentBuilder();
-        Document d = db.parse(uri.toString());
-        return d.getDocumentElement();
-    }
-    
-    String getTextInElement(Element e) {
-        StringBuilder buf = new StringBuilder();
-        NodeList children = e.getChildNodes();
-        for (int i = 0; i < children.getLength(); i++) {
-            Node n = children.item(i);
-            short type = n.getNodeType();
-            if (type == Node.TEXT_NODE || type == Node.CDATA_SECTION_NODE) {
-                buf.append(n.getNodeValue());
-            }
-        }
-        return buf.toString();
-    }
-    
-    /**
-     * Returns the list of test cases generated from the {@link #ELEM_TEST_CASE} element.
-     * There can be multiple generated test cases because of "incompatible improvements" variations, or none because
-     * of the {@code nameFilter}.
-     */
-    private List<TemplateTestCase> createTestCasesFromElement(Element testCaseElem)
-            throws Exception {
-        final String caseName = _StringUtil.emptyToNull(testCaseElem.getAttribute("name"));
-        if (caseName == null) throw new Exception("Invalid XML: the \"name\" attribute is mandatory.");
-        
-        if (testCaseNameFilter != null
-                && !testCaseNameFilter.matcher(caseName).matches()) {
-            return Collections.emptyList();
-        }
-        
-        final String templateName;
-        final String expectedFileName;
-        {
-            final String beforeEndTN;
-            final String afterEndTN;
-            {
-                int tBNameSep = caseName.indexOf(END_TEMPLATE_NAME_MARK);
-                beforeEndTN = tBNameSep == -1 ? caseName : caseName.substring(0, tBNameSep);
-                afterEndTN = tBNameSep == -1
-                        ? "" : caseName.substring(tBNameSep + END_TEMPLATE_NAME_MARK.length());
-            }
-            
-            {
-                String s = _StringUtil.emptyToNull(testCaseElem.getAttribute(ATTR_TEMPLATE));
-                templateName = s != null ? s : beforeEndTN + ".ftl";
-            }
-    
-            {
-                String s = _StringUtil.emptyToNull(testCaseElem.getAttribute(ATTR_EXPECTED));
-                expectedFileName = s != null ? s : beforeEndTN + afterEndTN + ".txt";
-            }
-        }
-        
-        final boolean noOutput;
-        {
-            String s = _StringUtil.emptyToNull(testCaseElem.getAttribute(ATTR_NO_OUTPUT));
-            noOutput = s != null && _StringUtil.getYesNo(s);
-        }
-
-        final Map<String, String> testCaseSettings = getCaseFMSettings(testCaseElem);
-        
-        final List<Version> icisToTest;
-        {
-            final String testCaseIcis = testCaseSettings.get(Configuration.ExtendableBuilder.INCOMPATIBLE_IMPROVEMENTS_KEY);
-                    
-            icisToTest = testCaseIcis != null ? parseVersionList(testCaseIcis) : testSuiteIcis;
-            if (icisToTest.isEmpty()) {
-                throw new Exception("The incompatible_improvement list was empty");
-            }
-        }
-
-        List<TemplateTestCase> result = new ArrayList<>();
-        for (Version iciToTest : icisToTest) {
-            TemplateTestCase testCase = new TemplateTestCase(
-                    caseName + "(ici=" + iciToTest + ")", caseName,
-                    templateName, expectedFileName, noOutput, iciToTest);
-            for (Map.Entry<String, String> setting : testSuiteSettings.entrySet()) {
-                testCase.setSetting(setting.getKey(), setting.getValue());
-            }
-            for (Map.Entry<String, String> setting : testCaseSettings.entrySet()) {
-                testCase.setSetting(setting.getKey(), setting.getValue());
-            }
-            
-            result.add(testCase);
-        }
-        
-        return result;
-    }
-
-    private List<Version> parseVersionList(String versionsStr) {
-        List<Version> versions = new ArrayList<>();
-        for (String versionStr : versionsStr.split(",")) {
-            versionStr = versionStr.trim();
-            if (versionStr.length() != 0) {
-                final Version v;
-                if ("min".equals(versionStr)) {
-                    v = getMinIcIVersion();
-                } else if ("max".equals(versionStr)) {
-                    v = getMaxIcIVersion();
-                } else {
-                    v = new Version(versionStr);
-                }
-                if (!versions.contains(v)) {
-                    versions.add(v);
-                }
-            }
-        }
-        return versions;
-    }
-
-    private Version getMaxIcIVersion() {
-        Version v = Configuration.getVersion();
-        // Remove nightly, RC and such:
-        return new Version(v.getMajor(), v.getMinor(), v.getMicro());
-    }
-
-    private Version getMinIcIVersion() {
-        return Configuration.VERSION_3_0_0;
-    }
-
-    private Map<String, String> getCaseFMSettings(Element e) {
-        final Map<String, String> caseFMSettings;
-        caseFMSettings = new LinkedHashMap<>();
-        NodeList settingElems = e.getElementsByTagName(ELEM_SETTING);
-        for (int elemIdx = 0; elemIdx < settingElems.getLength(); elemIdx++) {
-            NamedNodeMap attrs = settingElems.item(elemIdx).getAttributes();
-            for (int attrIdx = 0; attrIdx < attrs.getLength(); attrIdx++) {
-                Attr attr = (Attr) attrs.item(attrIdx);
-
-                final String settingName = attr.getName();
-                caseFMSettings.put(settingName, attr.getValue());
-            }
-        }
-        return caseFMSettings;
-    }
-    
-    public static void main (String[] args) throws Exception {
-        junit.textui.TestRunner.run(new TemplateTestSuite());
-    }
-    
-}

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/28a276c8/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/AllTemplateModels.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/AllTemplateModels.java b/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/AllTemplateModels.java
deleted file mode 100644
index 974b3f9..0000000
--- a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/AllTemplateModels.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.freemarker.test.templatesuite.models;
-
-import java.util.Date;
-
-import org.apache.freemarker.core.model.TemplateBooleanModel;
-import org.apache.freemarker.core.model.TemplateCollectionModel;
-import org.apache.freemarker.core.model.TemplateDateModel;
-import org.apache.freemarker.core.model.TemplateHashModelEx;
-import org.apache.freemarker.core.model.TemplateModel;
-import org.apache.freemarker.core.model.TemplateModelException;
-import org.apache.freemarker.core.model.TemplateModelIterator;
-import org.apache.freemarker.core.model.TemplateNumberModel;
-import org.apache.freemarker.core.model.TemplateScalarModel;
-import org.apache.freemarker.core.model.TemplateSequenceModel;
-import org.apache.freemarker.core.model.impl.SimpleScalar;
-
-/**
- * Implements all template models that are interesting when calling overloaded Java methods.
- */
-public class AllTemplateModels implements
-        TemplateScalarModel, TemplateNumberModel, TemplateDateModel, TemplateBooleanModel,
-        TemplateHashModelEx, TemplateSequenceModel, TemplateCollectionModel {
-
-    public static final AllTemplateModels INSTANCE = new AllTemplateModels();
-    
-    private final TemplateModelIterator EMPTY_ITERATOR = new TemplateModelIterator() {
-
-        @Override
-        public TemplateModel next() throws TemplateModelException {
-            return null;
-        }
-
-        @Override
-        public boolean hasNext() throws TemplateModelException {
-            return false;
-        }
-        
-    };
-    
-    private final TemplateCollectionModel EMPTY_COLLECTION = new TemplateCollectionModel() {
-
-        @Override
-        public TemplateModelIterator iterator() throws TemplateModelException {
-            return EMPTY_ITERATOR;
-        }
-    };
-    
-    @Override
-    public TemplateModel get(String key) throws TemplateModelException {
-        return new SimpleScalar("value for key " + key);
-    }
-
-    @Override
-    public boolean isEmpty() throws TemplateModelException {
-        return true;
-    }
-
-    @Override
-    public TemplateModelIterator iterator() throws TemplateModelException {
-        return EMPTY_ITERATOR;
-    }
-
-    @Override
-    public TemplateModel get(int index) throws TemplateModelException {
-        return null;
-    }
-
-    @Override
-    public int size() throws TemplateModelException {
-        return 0;
-    }
-
-    @Override
-    public TemplateCollectionModel keys() throws TemplateModelException {
-        return EMPTY_COLLECTION;
-    }
-
-    @Override
-    public TemplateCollectionModel values() throws TemplateModelException {
-        return EMPTY_COLLECTION;
-    }
-
-    @Override
-    public boolean getAsBoolean() throws TemplateModelException {
-        return true;
-    }
-
-    @Override
-    public Date getAsDate() throws TemplateModelException {
-        return new Date(0);
-    }
-
-    @Override
-    public int getDateType() {
-        return TemplateDateModel.DATETIME;
-    }
-
-    @Override
-    @SuppressWarnings("boxing")
-    public Number getAsNumber() throws TemplateModelException {
-        return 1;
-    }
-
-    @Override
-    public String getAsString() throws TemplateModelException {
-        return "s";
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/28a276c8/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/BeanTestClass.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/BeanTestClass.java b/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/BeanTestClass.java
deleted file mode 100644
index 7e7fa82..0000000
--- a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/BeanTestClass.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.freemarker.test.templatesuite.models;
-
-/**
- */
-public class BeanTestClass extends BeanTestSuperclass implements BeanTestInterface<Integer> {
-    public static final String STATIC_FINAL_FIELD = "static-final-field";
-    public static String STATIC_FIELD = "static-field";
-    
-	public String getFoo() {
-	    return "foo-value";
-	}
-	
-	public String getBar(int index) {
-	    return "bar-value-" + index;
-	}
-
-	public String[] getBar() {
-		return new String[] { "bar-value-0", "bar-value-1", "bar-value-2" };
-	}
-
-	public String overloaded(int i) {
-	    return "overloaded-int-" + i;
-	}
-	
-	public String overloaded(String s) {
-	    return "overloaded-String-" + s;
-	}
-	
-	public static String staticMethod() {
-	    return "static-method";
-	}
-	
-	public static String staticOverloaded(int i) {
-	    return "static-overloaded-int-" + i;
-	}
-
-	public static String staticOverloaded(String s) {
-	    return "static-overloaded-String-" + s;
-	}
-	
-	public PrivateInner getPrivateInner() {
-	    return new PrivateInner();
-	}
-
-        public PublicInner getPublicInner() {
-            return new PublicInner();
-        }
-	
-        public class PublicInner {
-            
-            public int getX() {
-                return 1;
-            }
-            
-            public String m() {
-                return "m";
-            }
-            
-        }
-        
-        @SuppressWarnings("unused")
-	private class PrivateInner {
-	    
-            public int getX() {
-	        return 2;
-	    }
-	    
-	    public String m() {
-	        return "M";
-	    }
-	    
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/28a276c8/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/BeanTestInterface.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/BeanTestInterface.java b/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/BeanTestInterface.java
deleted file mode 100644
index 6737b87..0000000
--- a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/BeanTestInterface.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.freemarker.test.templatesuite.models;
-
-public interface BeanTestInterface<T> {
-    T getSomething();
-    void setSomething(T s);
-}

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/28a276c8/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/BeanTestSuperclass.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/BeanTestSuperclass.java b/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/BeanTestSuperclass.java
deleted file mode 100644
index b462e9a..0000000
--- a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/BeanTestSuperclass.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.freemarker.test.templatesuite.models;
-
-public class BeanTestSuperclass {
-    public Integer getSomething() {
-        return 42;
-    }
-    
-    public void setSomething(Integer x) {
-        
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/28a276c8/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanAndScalarModel.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanAndScalarModel.java b/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanAndScalarModel.java
deleted file mode 100644
index 4af030e..0000000
--- a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanAndScalarModel.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.freemarker.test.templatesuite.models;
-
-import org.apache.freemarker.core.model.TemplateBooleanModel;
-import org.apache.freemarker.core.model.TemplateModelException;
-import org.apache.freemarker.core.model.TemplateScalarModel;
-
-public class BooleanAndScalarModel implements TemplateBooleanModel, TemplateScalarModel {
-
-    public static final BooleanAndScalarModel INSTANCE = new BooleanAndScalarModel();
-
-    @Override
-    public String getAsString() throws TemplateModelException {
-        return "s";
-    }
-
-    @Override
-    public boolean getAsBoolean() throws TemplateModelException {
-        return true;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/28a276c8/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanAndStringTemplateModel.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanAndStringTemplateModel.java b/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanAndStringTemplateModel.java
deleted file mode 100644
index d87b65c..0000000
--- a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanAndStringTemplateModel.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.freemarker.test.templatesuite.models;
-
-import org.apache.freemarker.core.model.TemplateBooleanModel;
-import org.apache.freemarker.core.model.TemplateModelException;
-import org.apache.freemarker.core.model.TemplateScalarModel;
-
-public class BooleanAndStringTemplateModel implements TemplateBooleanModel, TemplateScalarModel {
-
-    @Override
-    public String getAsString() throws TemplateModelException {
-        return "theStringValue";
-    }
-
-    @Override
-    public boolean getAsBoolean() throws TemplateModelException {
-        return true;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/28a276c8/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanHash1.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanHash1.java b/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanHash1.java
deleted file mode 100644
index 524d003..0000000
--- a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanHash1.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.freemarker.test.templatesuite.models;
-
-import org.apache.freemarker.core.model.TemplateBooleanModel;
-import org.apache.freemarker.core.model.TemplateHashModel;
-import org.apache.freemarker.core.model.TemplateModel;
-import org.apache.freemarker.core.model.impl.SimpleScalar;
-
-/**
- * Tests the impact that the isEmpty() has on template hash models.
- */
-public class BooleanHash1 implements TemplateHashModel {
-
-    /**
-     * Gets a <tt>TemplateModel</tt> from the hash.
-     *
-     * @param key the name by which the <tt>TemplateModel</tt>
-     * is identified in the template.
-     * @return the <tt>TemplateModel</tt> referred to by the key,
-     * or null if not found.
-     */
-    @Override
-    public TemplateModel get(String key) {
-        if ( key.equals( "temp" )) {
-            return new SimpleScalar( "Hello, world." );
-        } else if ( key.equals( "boolean" )) {
-            return TemplateBooleanModel.FALSE;
-        } else {
-            return new SimpleScalar( "Just another key..." );
-        }
-    }
-
-    /**
-     * @return true if this object is empty.
-     */
-    @Override
-    public boolean isEmpty() {
-        return true;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/28a276c8/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanHash2.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanHash2.java b/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanHash2.java
deleted file mode 100644
index 8bae7ab..0000000
--- a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanHash2.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.freemarker.test.templatesuite.models;
-
-import org.apache.freemarker.core.model.TemplateHashModel;
-import org.apache.freemarker.core.model.TemplateModel;
-
-/**
- * Tests the impact that the isEmpty() has on template hash models.
- */
-public class BooleanHash2 implements TemplateHashModel {
-
-    /**
-     * Gets a <tt>TemplateModel</tt> from the hash.
-     *
-     * @param key the name by which the <tt>TemplateModel</tt>
-     * is identified in the template.
-     * @return the <tt>TemplateModel</tt> referred to by the key,
-     * or null if not found.
-     */
-    @Override
-    public TemplateModel get(String key) {
-        return null;
-    }
-
-    /**
-     * @return true if this object is empty.
-     */
-    @Override
-    public boolean isEmpty() {
-        return false;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/28a276c8/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanList1.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanList1.java b/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanList1.java
deleted file mode 100644
index 3e0a69c..0000000
--- a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanList1.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.freemarker.test.templatesuite.models;
-
-import org.apache.freemarker.core.model.ObjectWrapper;
-import org.apache.freemarker.core.model.TemplateBooleanModel;
-import org.apache.freemarker.core.model.TemplateModel;
-import org.apache.freemarker.core.model.TemplateModelException;
-import org.apache.freemarker.core.model.TemplateSequenceModel;
-import org.apache.freemarker.core.model.impl.SimpleSequence;
-
-/**
- * Model for testing the impact of isEmpty() on template list models. Every
- * other method simply delegates to a SimpleList model.
- */
-public class BooleanList1 implements TemplateSequenceModel {
-
-    private SimpleSequence cList;
-
-    /** Creates new BooleanList1 */
-    public BooleanList1(ObjectWrapper ow) {
-        cList = new SimpleSequence(ow);
-        cList.add( "false" );
-        cList.add( "0" );
-        cList.add(TemplateBooleanModel.FALSE);
-        cList.add(TemplateBooleanModel.TRUE);
-        cList.add(TemplateBooleanModel.TRUE);
-        cList.add(TemplateBooleanModel.TRUE);
-        cList.add(TemplateBooleanModel.FALSE);
-    }
-
-    /**
-     * @return the specified index in the list
-     */
-    @Override
-    public TemplateModel get(int i) throws TemplateModelException {
-        return cList.get(i);
-    }
-
-    @Override
-    public int size() {
-        return cList.size();
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/28a276c8/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanList2.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanList2.java b/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanList2.java
deleted file mode 100644
index 939fb5f..0000000
--- a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanList2.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.freemarker.test.templatesuite.models;
-
-import org.apache.freemarker.core.model.ObjectWrapper;
-import org.apache.freemarker.core.model.TemplateModel;
-import org.apache.freemarker.core.model.TemplateModelException;
-import org.apache.freemarker.core.model.TemplateSequenceModel;
-import org.apache.freemarker.core.model.impl.SimpleSequence;
-
-/**
- * Model for testing list models. Every
- * other method simply delegates to a SimpleList model.
- */
-public class BooleanList2 implements TemplateSequenceModel {
-
-    private SimpleSequence cList;
-
-    /** Creates new BooleanList2 */
-    public BooleanList2(ObjectWrapper ow) {
-        cList = new SimpleSequence(ow);
-    }
-
-    /**
-     * @return the specified index in the list
-     */
-    @Override
-    public TemplateModel get(int i) throws TemplateModelException {
-        return cList.get(i);
-    }
-
-    @Override
-    public int size() {
-        return cList.size();
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/28a276c8/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanVsStringMethods.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanVsStringMethods.java b/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanVsStringMethods.java
deleted file mode 100644
index 3e13623..0000000
--- a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanVsStringMethods.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.freemarker.test.templatesuite.models;
-
-public class BooleanVsStringMethods {
-    
-    public String expectsString(String s) {
-        return s;
-    }
-
-    public boolean expectsBoolean(boolean b) {
-        return b;
-    }
-    
-    public String overloaded(String s) {
-        return "String " + s;
-    }
-    
-    public String overloaded(boolean s) {
-        return "boolean " + s;
-    }
-    
-}

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/28a276c8/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/EnumTestClass.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/EnumTestClass.java b/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/EnumTestClass.java
deleted file mode 100644
index 359e4a4..0000000
--- a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/EnumTestClass.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.freemarker.test.templatesuite.models;
-
-/**
- */
-public enum EnumTestClass
-{
-    ONE, 
-    TWO, 
-    THREE;
-    
-    @Override
-    public String toString() {
-        return name() + "x";
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/28a276c8/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/ExceptionModel.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/ExceptionModel.java b/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/ExceptionModel.java
deleted file mode 100644
index ca0f9be..0000000
--- a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/ExceptionModel.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.freemarker.test.templatesuite.models;
-
-import org.apache.freemarker.core.model.TemplateModelException;
-import org.apache.freemarker.core.model.TemplateScalarModel;
-
-/**
- * A template that always throws an exception whenever we call getAsString()
- */
-public class ExceptionModel implements TemplateScalarModel {
-
-    /**
-     * Returns the scalar's value as a String.
-     *
-     * @return the String value of this scalar.
-     */
-    @Override
-    public String getAsString () throws TemplateModelException {
-        throw new TemplateModelException( "Throwing from ExceptionModel!" );
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/28a276c8/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/HashAndScalarModel.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/HashAndScalarModel.java b/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/HashAndScalarModel.java
deleted file mode 100644
index 70ea42a..0000000
--- a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/HashAndScalarModel.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.freemarker.test.templatesuite.models;
-
-import org.apache.freemarker.core.model.TemplateCollectionModel;
-import org.apache.freemarker.core.model.TemplateHashModelEx;
-import org.apache.freemarker.core.model.TemplateModel;
-import org.apache.freemarker.core.model.TemplateModelException;
-import org.apache.freemarker.core.model.TemplateModelIterator;
-import org.apache.freemarker.core.model.TemplateScalarModel;
-import org.apache.freemarker.core.model.impl.SimpleScalar;
-
-public class HashAndScalarModel implements TemplateHashModelEx, TemplateScalarModel {
-    
-    public static final HashAndScalarModel INSTANCE = new HashAndScalarModel();
-    
-    private final TemplateCollectionModel EMPTY_COLLECTION = new TemplateCollectionModel() {
-
-        @Override
-        public TemplateModelIterator iterator() throws TemplateModelException {
-            return new TemplateModelIterator() {
-
-                @Override
-                public TemplateModel next() throws TemplateModelException {
-                    return null;
-                }
-
-                @Override
-                public boolean hasNext() throws TemplateModelException {
-                    return false;
-                }
-                
-            };
-        }
-    };
-
-    @Override
-    public String getAsString() throws TemplateModelException {
-        return "scalarValue";
-    }
-
-    @Override
-    public TemplateModel get(String key) throws TemplateModelException {
-        return new SimpleScalar("mapValue for " + key);
-    }
-
-    @Override
-    public boolean isEmpty() throws TemplateModelException {
-        return true;
-    }
-
-    @Override
-    public int size() throws TemplateModelException {
-        return 0;
-    }
-
-    @Override
-    public TemplateCollectionModel keys() throws TemplateModelException {
-        return EMPTY_COLLECTION;
-    }
-
-    @Override
-    public TemplateCollectionModel values() throws TemplateModelException {
-        return EMPTY_COLLECTION;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/28a276c8/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/JavaObjectInfo.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/JavaObjectInfo.java b/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/JavaObjectInfo.java
deleted file mode 100644
index 4673b09..0000000
--- a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/JavaObjectInfo.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.freemarker.test.templatesuite.models;
-
-import org.apache.freemarker.core.util._StringUtil;
-
-public class JavaObjectInfo {
-    
-    public static final Object INSTANCE = new JavaObjectInfo();
-
-    private JavaObjectInfo() { }
-    
-    public String info(Object o) {
-        if (o == null) return "null";
-        return o.getClass().getName() + " " + _StringUtil.jQuote(o.toString());
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/28a276c8/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/Listables.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/Listables.java b/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/Listables.java
deleted file mode 100644
index c2d7c90..0000000
--- a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/Listables.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.freemarker.test.templatesuite.models;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeSet;
-
-import org.apache.freemarker.core.Configuration;
-import org.apache.freemarker.core.model.ObjectWrapper;
-import org.apache.freemarker.core.model.TemplateCollectionModel;
-import org.apache.freemarker.core.model.TemplateHashModelEx;
-import org.apache.freemarker.core.model.TemplateHashModelEx2;
-import org.apache.freemarker.core.model.TemplateModel;
-import org.apache.freemarker.core.model.TemplateModelException;
-import org.apache.freemarker.core.model.WrappingTemplateModel;
-import org.apache.freemarker.core.model.impl.DefaultMapAdapter;
-import org.apache.freemarker.core.model.impl.DefaultObjectWrapper;
-import org.apache.freemarker.core.model.impl.SimpleCollection;
-import org.apache.freemarker.core.model.impl.SimpleHash;
-
-import com.google.common.collect.ImmutableMap;
-
-@SuppressWarnings("boxing")
-public class Listables {
-    
-    private static final List<Integer> LIST;
-    static {
-        List<Integer> list = new ArrayList<>();
-        list.add(11);
-        list.add(22);
-        list.add(33);
-        LIST = list;
-    }
-
-    private static final List<Integer> LINKED_LIST;
-    static {
-        List<Integer> list = new LinkedList<>();
-        list.add(11);
-        list.add(22);
-        list.add(33);
-        LINKED_LIST = list;
-    }
-
-    private static final List<Integer> EMPTY_LINKED_LIST = new LinkedList<>();
-
-    private static final Set<Integer> SET;
-    static {
-        Set<Integer> set = new TreeSet<>();
-        set.add(11);
-        set.add(22);
-        set.add(33);
-        SET = set;
-    }
-    
-    public List<Integer> getList() {
-        return LIST;
-    }
-    
-    public List<Integer> getLinkedList() {
-        return LINKED_LIST;
-    }
-    
-    public Set<Integer> getSet() {
-        return SET;
-    }
-
-    public Iterator<Integer> getIterator() {
-        return SET.iterator();
-    }
-
-    public List<Integer> getEmptyList() {
-        return Collections.emptyList();
-    }
-    
-    public List<Integer> getEmptyLinkedList() {
-        return Collections.emptyList();
-    }
-    
-    public Set<Integer> getEmptySet() {
-        return Collections.emptySet();
-    }
-
-    public Iterator<Integer> getEmptyIterator() {
-        return Collections.<Integer>emptySet().iterator();
-    }
-    
-    public List<TemplateHashModelEx2> getHashEx2s() throws TemplateModelException {
-        Map<Object, Object> map;
-        map = new LinkedHashMap<>();
-        map.put("k1", "v1");
-        map.put(2, "v2");
-        map.put("k3", "v3");
-        map.put(null, "v4");
-        map.put(true, "v5");
-        map.put(false, null);
-        
-        return getMapsWrappedAsEx2(map);
-    }
-
-    public List<? extends TemplateHashModelEx> getEmptyHashes() throws TemplateModelException {
-        List<TemplateHashModelEx> emptyMaps = new ArrayList<>();
-        emptyMaps.addAll(getMapsWrappedAsEx2(Collections.emptyMap()));
-        emptyMaps.add((TemplateHashModelEx) new DefaultObjectWrapper.Builder(Configuration.VERSION_3_0_0).build()
-                .wrap(Collections.emptyMap()));
-        return emptyMaps;
-    }
-    
-    /**
-     * Returns the map wrapped on various ways.
-     */
-    private List<TemplateHashModelEx2> getMapsWrappedAsEx2(Map<?, ?> map) throws TemplateModelException {
-        List<TemplateHashModelEx2> maps = new ArrayList<>();
-        
-        DefaultObjectWrapper ow = new DefaultObjectWrapper.Builder(Configuration.VERSION_3_0_0).build();
-        maps.add(new SimpleHash(map, ow));
-        maps.add((DefaultMapAdapter) ow.wrap(map));
-
-        return maps;
-    }
-    
-    public TemplateHashModelEx getHashNonEx2() {
-        return new NonEx2MapAdapter(ImmutableMap.of("k1", 11, "k2", 22),
-                new DefaultObjectWrapper.Builder(Configuration.VERSION_3_0_0).build());
-    }
-    
-    public static class NonEx2MapAdapter extends WrappingTemplateModel implements TemplateHashModelEx {
-
-        private final Map<?, ?> map;
-        
-        public NonEx2MapAdapter(Map<?, ?> map, ObjectWrapper wrapper) {
-            super(wrapper);
-            this.map = map;
-        }
-        
-        @Override
-        public TemplateModel get(String key) throws TemplateModelException {
-            return wrap(map.get(key));
-        }
-        
-        @Override
-        public boolean isEmpty() {
-            return map.isEmpty();
-        }
-        
-        @Override
-        public int size() {
-            return map.size();
-        }
-        
-        @Override
-        public TemplateCollectionModel keys() {
-            return new SimpleCollection(map.keySet(), getObjectWrapper());
-        }
-        
-        @Override
-        public TemplateCollectionModel values() {
-            return new SimpleCollection(map.values(), getObjectWrapper());
-        }
-        
-    }
-    
-}

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/28a276c8/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/MultiModel1.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/MultiModel1.java b/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/MultiModel1.java
deleted file mode 100644
index 66a0ffe..0000000
--- a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/MultiModel1.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.freemarker.test.templatesuite.models;
-
-import org.apache.freemarker.core.Configuration;
-import org.apache.freemarker.core.model.ObjectWrapper;
-import org.apache.freemarker.core.model.TemplateHashModel;
-import org.apache.freemarker.core.model.TemplateModel;
-import org.apache.freemarker.core.model.TemplateModelException;
-import org.apache.freemarker.core.model.TemplateScalarModel;
-import org.apache.freemarker.core.model.TemplateSequenceModel;
-import org.apache.freemarker.core.model.impl.DefaultObjectWrapper;
-import org.apache.freemarker.core.model.impl.SimpleHash;
-import org.apache.freemarker.core.model.impl.SimpleScalar;
-import org.apache.freemarker.core.model.impl.SimpleSequence;
-
-/**
- * Testcase to see how FreeMarker deals with multiple Template models.
- */
-public class MultiModel1 implements TemplateHashModel,
-        TemplateSequenceModel, TemplateScalarModel {
-
-    private ObjectWrapper ow = new DefaultObjectWrapper.Builder(Configuration.VERSION_3_0_0).build();
-
-    private TemplateModel m_cSubModel = new MultiModel2();
-    private TemplateModel m_cListHashModel1 = new MultiModel4(ow);
-    private TemplateModel m_cListHashModel2 = new MultiModel5(ow);
-    private TemplateSequenceModel m_cListModel = new SimpleSequence(ow);
-    private TemplateHashModel m_cHashModel = new SimpleHash(ow);
-
-    /** Creates new MultiModel1 */
-    public MultiModel1() {
-        for ( int i = 0; i < 10; i++ ) {
-            ((SimpleSequence) m_cListModel).add( "Model1 value: " + Integer.toString( i ));
-        }
-        ((SimpleSequence) m_cListModel).add( new MultiModel3() );
-        ((SimpleHash) m_cHashModel).put( "nested", new MultiModel3() );
-    }
-
-    /**
-     * Gets a <tt>TemplateModel</tt> from the hash.
-     *
-     * @param key the name by which the <tt>TemplateModel</tt>
-     * is identified in the template.
-     * @return the <tt>TemplateModel</tt> referred to by the key,
-     * or null if not found.
-     */
-    @Override
-    public TemplateModel get(String key) {
-        if ( key.equals( "model2" )) {
-            return m_cSubModel;
-        } else if ( key.equals( "modellist" )) {
-            return m_cListModel;
-        } else if ( key.equals( "selftest" )) {
-            return new SimpleScalar( "Selftest of a hash from MultiModel1" );
-        } else if ( key.equals( "one" )) {
-            return m_cListHashModel1;
-        } else if ( key.equals( "two" )) {
-            return m_cListHashModel2;
-        } else if ( key.equals( "size" )) {
-            return new SimpleScalar( "Nasty!" );
-        } else if ( key.equals( "nesting1" )) {
-            return m_cHashModel;
-        } else {
-            return null;
-        }
-    }
-
-    /**
-     * @return true if this object is empty.
-     */
-    @Override
-    public boolean isEmpty() {
-        return false;
-    }
-
-    /**
-     * @return the specified index in the list
-     */
-    @Override
-    public TemplateModel get(int i) throws TemplateModelException {
-        return m_cListModel.get( i );
-    }
-
-    /**
-     * Returns the scalar's value as a String.
-     *
-     * @return the String value of this scalar.
-     */
-    @Override
-    public String getAsString() {
-        return "MultiModel1 as a string!";
-    }
-
-    @Override
-    public int size() throws TemplateModelException {
-        return m_cListModel.size();
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/28a276c8/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/MultiModel2.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/MultiModel2.java b/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/MultiModel2.java
deleted file mode 100644
index a7a75b5..0000000
--- a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/MultiModel2.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.freemarker.test.templatesuite.models;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.apache.freemarker.core.model.TemplateMethodModel;
-import org.apache.freemarker.core.model.TemplateScalarModel;
-import org.apache.freemarker.core.model.impl.SimpleScalar;
-
-/**
- * Testcase to see how FreeMarker deals with multiple Template models.
- */
-public class MultiModel2 implements TemplateScalarModel, TemplateMethodModel {
-
-    /**
-     * Returns the scalar's value as a String.
-     *
-     * @return the String value of this scalar.
-     */
-    @Override
-    public String getAsString() {
-        return "Model2 is alive!";
-    }
-
-    /**
-     * Executes a method call.
-     *
-     * @param arguments a <tt>List</tt> of <tt>String</tt> objects containing the values
-     * of the arguments passed to the method.
-     * @return the <tt>TemplateModel</tt> produced by the method, or null.
-     */
-    @Override
-    public Object exec(List arguments) {
-        StringBuilder  aResults = new StringBuilder( "Arguments are:<br />" );
-        Iterator    iList = arguments.iterator();
-
-        while ( iList.hasNext() ) {
-            aResults.append( (String) iList.next() );
-            aResults.append( "<br />" );
-        }
-
-        return new SimpleScalar( aResults.toString() );
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/28a276c8/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/MultiModel3.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/MultiModel3.java b/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/MultiModel3.java
deleted file mode 100644
index 4434afc..0000000
--- a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/MultiModel3.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.freemarker.test.templatesuite.models;
-
-import org.apache.freemarker.core.model.TemplateHashModel;
-import org.apache.freemarker.core.model.TemplateModel;
-import org.apache.freemarker.core.model.TemplateScalarModel;
-import org.apache.freemarker.core.model.impl.SimpleScalar;
-
-/**
- * Testcase to see how FreeMarker deals with multiple Template models.
- */
-public class MultiModel3 implements TemplateScalarModel, TemplateHashModel {
-
-    /**
-     * Returns the scalar's value as a String.
-     *
-     * @return the String value of this scalar.
-     */
-    @Override
-    public String getAsString() {
-        return "Model3 is alive!";
-    }
-
-    /**
-     * @return true if this object is empty.
-     */
-    @Override
-    public boolean isEmpty() {
-        return false;
-    }
-
-    /**
-     * Gets a <tt>TemplateModel</tt> from the hash.
-     *
-     * @param key the name by which the <tt>TemplateModel</tt>
-     * is identified in the template.
-     * @return the <tt>TemplateModel</tt> referred to by the key,
-     * or null if not found.
-     */
-    @Override
-    public TemplateModel get(String key) {
-        if ( key.equals( "selftest" )) {
-            return new SimpleScalar( "Selftest from MultiModel3!" );
-        } else if ( key.equals( "message" )) {
-            return new SimpleScalar( "Hello world from MultiModel3!" );
-        } else {
-            return null;
-        }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/28a276c8/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/MultiModel4.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/MultiModel4.java b/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/MultiModel4.java
deleted file mode 100644
index bdd11fc..0000000
--- a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/MultiModel4.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.freemarker.test.templatesuite.models;
-
-import org.apache.freemarker.core.model.ObjectWrapper;
-import org.apache.freemarker.core.model.TemplateHashModel;
-import org.apache.freemarker.core.model.TemplateModel;
-import org.apache.freemarker.core.model.TemplateModelException;
-import org.apache.freemarker.core.model.TemplateSequenceModel;
-import org.apache.freemarker.core.model.impl.SimpleScalar;
-import org.apache.freemarker.core.model.impl.SimpleSequence;
-
-/**
- * Testcase to see how FreeMarker deals with multiple Template models.
- */
-public class MultiModel4 implements TemplateSequenceModel, TemplateHashModel {
-
-    private final SimpleSequence m_cList;
-
-    public MultiModel4(ObjectWrapper ow) {
-        this.m_cList = new SimpleSequence(ow);
-    }
-
-    /**
-     * @return the specified index in the list
-     */
-    @Override
-    public TemplateModel get(int i) throws TemplateModelException {
-        return m_cList.get( i );
-    }
-
-    /**
-     * Gets a <tt>TemplateModel</tt> from the hash.
-     *
-     * @param key the name by which the <tt>TemplateModel</tt>
-     * is identified in the template.
-     * @return the <tt>TemplateModel</tt> referred to by the key,
-     * or null if not found.
-     */
-    @Override
-    public TemplateModel get(String key) {
-        if ( key.equals( "size" )) {
-            return new SimpleScalar( "Key size, not the listSize method." );
-        } else {
-            return null;
-        }
-    }
-
-
-    @Override
-    public int size() {
-        return m_cList.size();
-    }
-
-    @Override
-    public boolean isEmpty() {
-        return size() == 0;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/28a276c8/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/MultiModel5.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/MultiModel5.java b/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/MultiModel5.java
deleted file mode 100644
index 01f7a3e..0000000
--- a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/MultiModel5.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.freemarker.test.templatesuite.models;
-
-import org.apache.freemarker.core.model.ObjectWrapper;
-import org.apache.freemarker.core.model.TemplateHashModel;
-import org.apache.freemarker.core.model.TemplateModel;
-import org.apache.freemarker.core.model.TemplateModelException;
-import org.apache.freemarker.core.model.TemplateSequenceModel;
-import org.apache.freemarker.core.model.impl.SimpleScalar;
-import org.apache.freemarker.core.model.impl.SimpleSequence;
-
-/**
- * Testcase to see how FreeMarker deals with multiple Template models.
- */
-public class MultiModel5 implements TemplateSequenceModel, TemplateHashModel {
-
-    private final SimpleSequence m_cList;
-
-    /** Creates new MultiModel5 */
-    public MultiModel5(ObjectWrapper ow) {
-        this.m_cList = new SimpleSequence(ow);
-        m_cList.add( new SimpleScalar( "Dummy to make list non-empty" ));
-    }
-
-    /**
-     * @return the specified index in the list
-     */
-    @Override
-    public TemplateModel get(int i) throws TemplateModelException {
-        return m_cList.get( i );
-    }
-
-    /**
-     * @return true if this object is empty.
-     */
-    @Override
-    public boolean isEmpty() {
-        return false;
-    }
-
-    @Override
-    public int size() {
-        return m_cList.size();
-    }
-
-    /**
-     * Gets a <tt>TemplateModel</tt> from the hash.
-     *
-     * @param key the name by which the <tt>TemplateModel</tt>
-     * is identified in the template.
-     * @return the <tt>TemplateModel</tt> referred to by the key,
-     * or null if not found.
-     */
-    @Override
-    public TemplateModel get(String key) {
-        if ( key.equals( "empty" )) {
-            return new SimpleScalar( "Dummy hash value, for test purposes." );
-        } else {
-            return null;
-        }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/28a276c8/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/NewTestModel.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/NewTestModel.java b/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/NewTestModel.java
deleted file mode 100644
index 9f51458..0000000
--- a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/NewTestModel.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.freemarker.test.templatesuite.models;
-
-import org.apache.freemarker.core.model.TemplateScalarModel;
-
-/**
- * Testcase to see how FreeMarker's ?new built-in deals with constructors.
- */
-public class NewTestModel
-implements
-    TemplateScalarModel {
-    private final String string;
-    
-    public NewTestModel() {
-        string = "default constructor";
-    }
-
-    public NewTestModel(String str) {
-        string = str;
-    }
-
-    public NewTestModel(long i) {
-        string = Long.toString(i);
-    }
-
-    public NewTestModel(Object o1, java.io.Serializable o2) {
-        string = o1 + ":" + o2;
-    }
-
-    @Override
-    public String getAsString() {
-        return string;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/28a276c8/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/NewTestModel2.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/NewTestModel2.java b/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/NewTestModel2.java
deleted file mode 100644
index 420b4fa..0000000
--- a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/NewTestModel2.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.freemarker.test.templatesuite.models;
-
-import org.apache.freemarker.core.model.TemplateScalarModel;
-
-/**
- * Testcase to see how FreeMarker's ?new built-in deals with constructors.
- */
-public class NewTestModel2
-implements
-    TemplateScalarModel {
-    private final String string;
-    
-    public NewTestModel2() {
-        string = "default constructor";
-    }
-
-    public NewTestModel2(String str) {
-        string = str;
-    }
-
-    public NewTestModel2(long i) {
-        string = Long.toString(i);
-    }
-
-    public NewTestModel2(Object o1, java.io.Serializable o2) {
-        string = o1 + ":" + o2;
-    }
-
-    @Override
-    public String getAsString() {
-        return string;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/28a276c8/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/NumberAndStringModel.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/NumberAndStringModel.java b/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/NumberAndStringModel.java
deleted file mode 100644
index 5c8e7db..0000000
--- a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/NumberAndStringModel.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.freemarker.test.templatesuite.models;
-
-import org.apache.freemarker.core.model.TemplateModelException;
-import org.apache.freemarker.core.model.TemplateNumberModel;
-import org.apache.freemarker.core.model.TemplateScalarModel;
-
-public class NumberAndStringModel implements TemplateNumberModel,
-		TemplateScalarModel {
-	
-	private final String s;
-	
-	public NumberAndStringModel(String s) {
-		super();
-		this.s = s;
-	}
-
-	@Override
-    public String getAsString() throws TemplateModelException {
-		return s;
-	}
-
-	@Override
-    @SuppressWarnings("boxing")
-    public Number getAsNumber() throws TemplateModelException {
-		return s.length();
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/28a276c8/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/OverloadedConstructor.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/OverloadedConstructor.java b/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/OverloadedConstructor.java
deleted file mode 100644
index 6e09053..0000000
--- a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/OverloadedConstructor.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.freemarker.test.templatesuite.models;
-
-import org.apache.freemarker.core.model.TemplateModelException;
-import org.apache.freemarker.core.model.TemplateScalarModel;
-
-public class OverloadedConstructor implements TemplateScalarModel {
-    
-    String value;
-    
-    public OverloadedConstructor(int i) {
-        value = "int " + i;
-    }
-    
-    public OverloadedConstructor(String s) {
-        value = "String " + s;
-    }
-
-    public OverloadedConstructor(CharSequence s) {
-        value = "CharSequence " + s;
-    }
-    
-    @Override
-    public String getAsString() throws TemplateModelException {
-        return value;
-    }
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/28a276c8/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/OverloadedMethods.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/OverloadedMethods.java b/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/OverloadedMethods.java
deleted file mode 100644
index ebd505a..0000000
--- a/freemarker-core/src/test/java/org/apache/freemarker/test/templatesuite/models/OverloadedMethods.java
+++ /dev/null
@@ -1,191 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.freemarker.test.templatesuite.models;
-
-import java.math.BigDecimal;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.freemarker.core.util.FTLUtil;
-
-/**
- * For testing overloaded method selection.
- */
-public class OverloadedMethods {
-
-	public String oneArg(Object a1) {
-		return methodCallToStr("oneArg<Object>", a1);
-	}
-
-	public String oneArg(String a1) {
-		return methodCallToStr("oneArg<String>", a1);
-	}
-
-	public String oneArg(Boolean a1) {
-		return methodCallToStr("oneArg<Boolean>", a1);
-	}
-
-	public String oneArg(boolean a1) {
-		return methodCallToStr("oneArg<boolean>", Boolean.valueOf(a1));
-	}
-	
-	public String oneArg(List a1) {
-		return methodCallToStr("oneArg<List>", a1);
-	}
-
-	public String oneArg(Map a1) {
-		return methodCallToStr("oneArg<Map>", a1);
-	}
-
-    public String oneArg2(Map a1) {
-        return methodCallToStr("oneArg2<Map>", a1);
-    }
-
-    public String oneArg2(List a1) {
-        return methodCallToStr("oneArg2<List>", a1);
-    }
-    
-    public String oneArg3(List a1, List a2) {
-        return methodCallToStr("oneArg3<List, List>", a1, a2);
-    }
-
-    public String oneArg3(List a1) {
-        return methodCallToStr("oneArg3<List>", a1);
-    }
-    
-    public String oneArg4(Integer a1) {
-        return methodCallToStr("oneArg4<Integer>", a1);
-    }
-
-    public String oneArg4(int a1) {
-        return methodCallToStr("oneArg4<int>", Integer.valueOf(a1));
-    }
-
-    public String notOverloaded(List a1) {
-        return methodCallToStr("notOverloaded<List>", a1);
-    }
-    
-	public String varargsIssue1(Map a1, List a2) {
-	    return methodCallToStr("varargsIssue1<Map, List>", a1, a2);
-	}
-
-    public String varargsIssue1(Object... a1) {
-        return methodCallToStr("varargsIssue1<Object...>", a1);
-    }
-
-    public String varargsIssue2(String a1, List a2) {
-        return methodCallToStr("varargsIssue2<String, List>", a1, a2);
-    }
-
-    public String varargsIssue2(String a1, Map a2) {
-        return methodCallToStr("varargsIssue2<String, Map>", a1, a2);
-    }
-
-    public String varargsIssue2(Object... a1) {
-        return methodCallToStr("varargsIssue2<Object...>", a1);
-    }
-    
-    public String numberIssue1(int a1) {
-        return methodCallToStr("numberIssue1<int>", a1);
-    }
-    
-    public String numberIssue1(float a1) {
-        return methodCallToStr("numberIssue1<float>", a1);
-    }
-    
-    public String numberIssue2(int a1) {
-        return methodCallToStr("numberIssue2<int>", a1);
-    }
-    
-    public String numberIssue2(BigDecimal a1) {
-        return methodCallToStr("numberIssue2<BigDecimal>", a1);
-    }
-
-    public String numberIssue3(int a1) {
-        return methodCallToStr("numberIssue3<int>", a1);
-    }
-    
-    public String numberIssue3(double a1) {
-        return methodCallToStr("numberIssue3<double>", a1);
-    }
-    
-	private String methodCallToStr(String methodName, Object... args) {
-		StringBuilder sb = new StringBuilder();
-		
-		sb.append(methodName);
-		sb.append('(');
-		boolean hadItems = false;
-		for (Object arg : args) {
-			if (hadItems) sb.append(", ");
-			sb.append(valueToStr(arg));
-			hadItems = true;
-		}
-		sb.append(')');
-		
-		return sb.toString();
-	}
-	
-	private String valueToStr(Object value) {
-		if (value == null) {
-		    return "null";
-		} else if (value instanceof Character) {
-			return "'" + FTLUtil.escapeStringLiteralPart(value.toString()) + "'";
-		} else if (value instanceof String) {
-			return "\"" + FTLUtil.escapeStringLiteralPart((String) value) + "\"";
-		} else if (value instanceof Map) {
-			StringBuilder sb = new StringBuilder(); 
-			sb.append("{");
-			boolean hadItems = false;
-			for (Map.Entry<?, ?> ent : ((Map<?, ?>) value).entrySet()) {
-				if (hadItems) sb.append(", ");
-				sb.append(valueToStr(ent.getKey()));
-				sb.append(": ");
-				sb.append(valueToStr(ent.getValue()));
-				hadItems = true;
-			}
-			sb.append("}");
-			return sb.toString();
-		} else if (value instanceof Collection || value.getClass().isArray()) {
-			StringBuilder sb = new StringBuilder();
-			
-	        if (value.getClass().isArray()) {
-	            value = Arrays.asList(value);
-                sb.append("array");
-	        } else if (value instanceof Set) {
-				sb.append("set");
-			}
-			sb.append("[");
-			boolean hadItems = false;
-			for (Object i : (Collection) value) {
-				if (hadItems) sb.append(", ");
-				sb.append(i);
-				hadItems = true;
-			}
-			sb.append("]");
-			return sb.toString();
-		} else {
-			return value.toString(); 
-		}
-	}
-	
-}



Mime
View raw message