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