Revision: 668
          http://stripes.svn.sourceforge.net/stripes/?rev=668&view=rev
Author:   bengunter
Date:     2007-12-11 20:53:54 -0800 (Tue, 11 Dec 2007)

Log Message:
-----------
New test for DefaultFormatterFactory

Added Paths:
-----------
    trunk/tests/src/net/sourceforge/stripes/format/
    
trunk/tests/src/net/sourceforge/stripes/format/DefaultFormatterFactoryTest.java

Added: 
trunk/tests/src/net/sourceforge/stripes/format/DefaultFormatterFactoryTest.java
===================================================================
--- 
trunk/tests/src/net/sourceforge/stripes/format/DefaultFormatterFactoryTest.java 
                            (rev 0)
+++ 
trunk/tests/src/net/sourceforge/stripes/format/DefaultFormatterFactoryTest.java 
    2007-12-12 04:53:54 UTC (rev 668)
@@ -0,0 +1,163 @@
+package net.sourceforge.stripes.format;
+
+import java.util.Locale;
+
+import net.sourceforge.stripes.config.DefaultConfiguration;
+
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+public class DefaultFormatterFactoryTest {
+    @Test(groups = "fast")
+    public void testFormatterSuperclass() throws Exception {
+        DefaultFormatterFactory factory = new DefaultFormatterFactory();
+        factory.init(new DefaultConfiguration());
+
+        Locale locale = Locale.getDefault();
+        Formatter<?> formatter;
+
+        factory.add(A.class, ATC.class);
+
+        formatter = factory.getFormatter(A.class, locale, null, null);
+        Assert.assertEquals(ATC.class, formatter.getClass());
+        formatter = factory.getFormatter(B.class, locale, null, null);
+        Assert.assertEquals(ATC.class, formatter.getClass());
+        formatter = factory.getFormatter(C.class, locale, null, null);
+        Assert.assertEquals(ATC.class, formatter.getClass());
+
+        factory.add(B.class, BTC.class);
+
+        formatter = factory.getFormatter(A.class, locale, null, null);
+        Assert.assertEquals(ATC.class, formatter.getClass());
+        formatter = factory.getFormatter(B.class, locale, null, null);
+        Assert.assertEquals(BTC.class, formatter.getClass());
+        formatter = factory.getFormatter(C.class, locale, null, null);
+        Assert.assertEquals(BTC.class, formatter.getClass());
+
+        factory.add(C.class, CTC.class);
+
+        formatter = factory.getFormatter(A.class, locale, null, null);
+        Assert.assertEquals(ATC.class, formatter.getClass());
+        formatter = factory.getFormatter(B.class, locale, null, null);
+        Assert.assertEquals(BTC.class, formatter.getClass());
+        formatter = factory.getFormatter(C.class, locale, null, null);
+        Assert.assertEquals(CTC.class, formatter.getClass());
+    }
+
+    @Test(groups = "fast")
+    public void testFormatterInterface() throws Exception {
+        DefaultFormatterFactory factory = new DefaultFormatterFactory();
+        factory.init(new DefaultConfiguration());
+
+        Locale locale = Locale.getDefault();
+        Formatter<?> formatter;
+
+        factory.add(X.class, XTC.class);
+
+        formatter = factory.getFormatter(L.class, locale, null, null);
+        Assert.assertEquals(XTC.class, formatter.getClass());
+        formatter = factory.getFormatter(M.class, locale, null, null);
+        Assert.assertEquals(XTC.class, formatter.getClass());
+        formatter = factory.getFormatter(N.class, locale, null, null);
+        Assert.assertEquals(XTC.class, formatter.getClass());
+        formatter = factory.getFormatter(O.class, locale, null, null);
+        Assert.assertEquals(XTC.class, formatter.getClass());
+        formatter = factory.getFormatter(P.class, locale, null, null);
+        Assert.assertEquals(XTC.class, formatter.getClass());
+
+        factory.add(Y.class, YTC.class);
+
+        formatter = factory.getFormatter(L.class, locale, null, null);
+        Assert.assertEquals(XTC.class, formatter.getClass());
+        formatter = factory.getFormatter(M.class, locale, null, null);
+        Assert.assertEquals(YTC.class, formatter.getClass());
+        formatter = factory.getFormatter(N.class, locale, null, null);
+        Assert.assertEquals(YTC.class, formatter.getClass());
+        formatter = factory.getFormatter(O.class, locale, null, null);
+        Assert.assertEquals(YTC.class, formatter.getClass());
+        formatter = factory.getFormatter(P.class, locale, null, null);
+        Assert.assertEquals(YTC.class, formatter.getClass());
+
+        factory.add(Z.class, ZTC.class);
+
+        formatter = factory.getFormatter(L.class, locale, null, null);
+        Assert.assertEquals(XTC.class, formatter.getClass());
+        formatter = factory.getFormatter(M.class, locale, null, null);
+        Assert.assertEquals(YTC.class, formatter.getClass());
+        formatter = factory.getFormatter(N.class, locale, null, null);
+        Assert.assertEquals(ZTC.class, formatter.getClass());
+        formatter = factory.getFormatter(O.class, locale, null, null);
+        Assert.assertEquals(YTC.class, formatter.getClass());
+        formatter = factory.getFormatter(P.class, locale, null, null);
+        Assert.assertEquals(ZTC.class, formatter.getClass());
+    }
+
+    public static class A {
+    }
+
+    public static class B extends A {
+    }
+
+    public static class C extends B {
+    }
+
+    public static class DummyFormatter<T> implements Formatter<T> {
+        public String format(T input) {
+            return null;
+        }
+
+        public void init() {
+        }
+
+        public void setFormatPattern(String formatPattern) {
+        }
+
+        public void setFormatType(String formatType) {
+        }
+
+        public void setLocale(Locale locale) {
+        }
+    }
+
+    public static class ATC extends DummyFormatter<A> {
+    }
+
+    public static class BTC extends DummyFormatter<B> {
+    }
+
+    public static class CTC extends DummyFormatter<C> {
+    }
+
+    public interface X {
+    }
+
+    public interface Y extends X {
+    }
+
+    public interface Z {
+    }
+
+    public static class L implements X {
+    }
+
+    public static class M implements Y {
+    }
+
+    public static class N extends M implements Z {
+    }
+
+    public static class O extends L implements Y {
+    }
+
+    public static class P extends O implements Z {
+    }
+
+    public static class XTC extends DummyFormatter<X> {
+    }
+
+    public static class YTC extends DummyFormatter<Y> {
+    }
+
+    public static class ZTC extends DummyFormatter<Z> {
+    }
+}


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-------------------------------------------------------------------------
SF.Net email is sponsored by: 
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Stripes-development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/stripes-development

Reply via email to