You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@freemarker.apache.org by dd...@apache.org on 2017/03/12 14:24:55 UTC

incubator-freemarker git commit: DefaultEnumerationAdapter cleanup and test

Repository: incubator-freemarker
Updated Branches:
  refs/heads/3 2bd41412e -> f2f2bf056


DefaultEnumerationAdapter cleanup and test


Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/f2f2bf05
Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/f2f2bf05
Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/f2f2bf05

Branch: refs/heads/3
Commit: f2f2bf056ba08e5c7d8117d65bd73f728212afd4
Parents: 2bd4141
Author: ddekany <dd...@apache.org>
Authored: Sun Mar 12 15:24:50 2017 +0100
Committer: ddekany <dd...@apache.org>
Committed: Sun Mar 12 15:24:50 2017 +0100

----------------------------------------------------------------------
 .../model/impl/DefaultEnumerationAdapter.java   | 14 +++++-----
 .../model/impl/DefaultObjectWrapperTest.java    | 27 +++++++++++++++++++-
 2 files changed, 33 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/f2f2bf05/src/main/java/org/apache/freemarker/core/model/impl/DefaultEnumerationAdapter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/DefaultEnumerationAdapter.java b/src/main/java/org/apache/freemarker/core/model/impl/DefaultEnumerationAdapter.java
index f895bda..d56e635 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/DefaultEnumerationAdapter.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/DefaultEnumerationAdapter.java
@@ -39,25 +39,25 @@ import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
  * {@link TemplateCollectionModel}. Putting aside that it wraps an {@link Enumeration} instead of an {@link Iterator},
  * this is identical to {@link DefaultIteratorAdapter}, so see further details there.
  */
-// TODO JUnit
+@SuppressWarnings("serial")
 public class DefaultEnumerationAdapter extends WrappingTemplateModel implements TemplateCollectionModel,
         AdapterTemplateModel, WrapperTemplateModel, Serializable {
 
     @SuppressFBWarnings(value="SE_BAD_FIELD", justification="We hope it's Seralizable")
-    private final Enumeration enumeration;
+    private final Enumeration<?> enumeration;
     private boolean enumerationOwnedBySomeone;
 
     /**
      * Factory method for creating new adapter instances.
      *
-     * @param iterator
+     * @param enumeration
      *            The enumeration to adapt; can't be {@code null}.
      */
-    public static DefaultEnumerationAdapter adapt(Enumeration iterator, ObjectWrapper wrapper) {
-        return new DefaultEnumerationAdapter(iterator, wrapper);
+    public static DefaultEnumerationAdapter adapt(Enumeration<?> enumeration, ObjectWrapper wrapper) {
+        return new DefaultEnumerationAdapter(enumeration, wrapper);
     }
 
-    private DefaultEnumerationAdapter(Enumeration enumeration, ObjectWrapper wrapper) {
+    private DefaultEnumerationAdapter(Enumeration<?> enumeration, ObjectWrapper wrapper) {
         super(wrapper);
         this.enumeration = enumeration;
     }
@@ -68,7 +68,7 @@ public class DefaultEnumerationAdapter extends WrappingTemplateModel implements
     }
 
     @Override
-    public Object getAdaptedObject(Class hint) {
+    public Object getAdaptedObject(Class<?> hint) {
         return getWrappedObject();
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/f2f2bf05/src/test/java/org/apache/freemarker/core/model/impl/DefaultObjectWrapperTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/core/model/impl/DefaultObjectWrapperTest.java b/src/test/java/org/apache/freemarker/core/model/impl/DefaultObjectWrapperTest.java
index deefd32..26857b2 100644
--- a/src/test/java/org/apache/freemarker/core/model/impl/DefaultObjectWrapperTest.java
+++ b/src/test/java/org/apache/freemarker/core/model/impl/DefaultObjectWrapperTest.java
@@ -653,7 +653,32 @@ public class DefaultObjectWrapperTest {
 
         assertTemplateOutput(OW, iterable, listingFTL, "a, b, c");
     }
-    
+
+    @Test
+    public void testEnumerationAdapter() throws TemplateModelException {
+        DefaultObjectWrapper ow = new DefaultObjectWrapperBuilder(Configuration.VERSION_3_0_0).build();
+        Vector<String> vector = new Vector<String>();
+        vector.add("a");
+        vector.add("b");
+
+        TemplateModel wrappedEnumeration = ow.wrap(vector.elements());
+        assertThat(wrappedEnumeration, instanceOf(DefaultEnumerationAdapter.class));
+        DefaultEnumerationAdapter enumAdapter = (DefaultEnumerationAdapter) wrappedEnumeration;
+        TemplateModelIterator iterator = enumAdapter.iterator();
+        assertTrue(iterator.hasNext());
+        assertEquals("a", ((TemplateScalarModel) iterator.next()).getAsString());
+        assertTrue(iterator.hasNext());
+        assertEquals("b", ((TemplateScalarModel) iterator.next()).getAsString());
+        assertFalse(iterator.hasNext());
+
+        iterator = enumAdapter.iterator();
+        try {
+            iterator.hasNext();
+        } catch (TemplateException e) {
+            assertThat(e.getMessage(), containsStringIgnoringCase("only once"));
+        }
+    }
+
     @Test
     public void assertCanWrapDOM() throws SAXException, IOException, ParserConfigurationException,
             TemplateModelException {