Revision: 679
http://stripes.svn.sourceforge.net/stripes/?rev=679&view=rev
Author: bengunter
Date: 2007-12-12 07:25:20 -0800 (Wed, 12 Dec 2007)
Log Message:
-----------
New test to ensure interfaces in superclasses are handled properly.
Modified Paths:
--------------
trunk/tests/src/net/sourceforge/stripes/format/DefaultFormatterFactoryTest.java
Modified:
trunk/tests/src/net/sourceforge/stripes/format/DefaultFormatterFactoryTest.java
===================================================================
---
trunk/tests/src/net/sourceforge/stripes/format/DefaultFormatterFactoryTest.java
2007-12-12 15:19:25 UTC (rev 678)
+++
trunk/tests/src/net/sourceforge/stripes/format/DefaultFormatterFactoryTest.java
2007-12-12 15:25:20 UTC (rev 679)
@@ -16,32 +16,32 @@
Locale locale = Locale.getDefault();
Formatter<?> formatter;
- factory.add(A.class, ATC.class);
+ factory.add(A.class, AFormatter.class);
formatter = factory.getFormatter(A.class, locale, null, null);
- Assert.assertEquals(ATC.class, formatter.getClass());
+ Assert.assertEquals(AFormatter.class, formatter.getClass());
formatter = factory.getFormatter(B.class, locale, null, null);
- Assert.assertEquals(ATC.class, formatter.getClass());
+ Assert.assertEquals(AFormatter.class, formatter.getClass());
formatter = factory.getFormatter(C.class, locale, null, null);
- Assert.assertEquals(ATC.class, formatter.getClass());
+ Assert.assertEquals(AFormatter.class, formatter.getClass());
- factory.add(B.class, BTC.class);
+ factory.add(B.class, BFormatter.class);
formatter = factory.getFormatter(A.class, locale, null, null);
- Assert.assertEquals(ATC.class, formatter.getClass());
+ Assert.assertEquals(AFormatter.class, formatter.getClass());
formatter = factory.getFormatter(B.class, locale, null, null);
- Assert.assertEquals(BTC.class, formatter.getClass());
+ Assert.assertEquals(BFormatter.class, formatter.getClass());
formatter = factory.getFormatter(C.class, locale, null, null);
- Assert.assertEquals(BTC.class, formatter.getClass());
+ Assert.assertEquals(BFormatter.class, formatter.getClass());
- factory.add(C.class, CTC.class);
+ factory.add(C.class, CFormatter.class);
formatter = factory.getFormatter(A.class, locale, null, null);
- Assert.assertEquals(ATC.class, formatter.getClass());
+ Assert.assertEquals(AFormatter.class, formatter.getClass());
formatter = factory.getFormatter(B.class, locale, null, null);
- Assert.assertEquals(BTC.class, formatter.getClass());
+ Assert.assertEquals(BFormatter.class, formatter.getClass());
formatter = factory.getFormatter(C.class, locale, null, null);
- Assert.assertEquals(CTC.class, formatter.getClass());
+ Assert.assertEquals(CFormatter.class, formatter.getClass());
}
@Test(groups = "fast")
@@ -52,44 +52,44 @@
Locale locale = Locale.getDefault();
Formatter<?> formatter;
- factory.add(X.class, XTC.class);
+ factory.add(X.class, XFormatter.class);
formatter = factory.getFormatter(L.class, locale, null, null);
- Assert.assertEquals(XTC.class, formatter.getClass());
+ Assert.assertEquals(XFormatter.class, formatter.getClass());
formatter = factory.getFormatter(M.class, locale, null, null);
- Assert.assertEquals(XTC.class, formatter.getClass());
+ Assert.assertEquals(XFormatter.class, formatter.getClass());
formatter = factory.getFormatter(N.class, locale, null, null);
- Assert.assertEquals(XTC.class, formatter.getClass());
+ Assert.assertEquals(XFormatter.class, formatter.getClass());
formatter = factory.getFormatter(O.class, locale, null, null);
- Assert.assertEquals(XTC.class, formatter.getClass());
+ Assert.assertEquals(XFormatter.class, formatter.getClass());
formatter = factory.getFormatter(P.class, locale, null, null);
- Assert.assertEquals(XTC.class, formatter.getClass());
+ Assert.assertEquals(XFormatter.class, formatter.getClass());
- factory.add(Y.class, YTC.class);
+ factory.add(Y.class, YFormatter.class);
formatter = factory.getFormatter(L.class, locale, null, null);
- Assert.assertEquals(XTC.class, formatter.getClass());
+ Assert.assertEquals(XFormatter.class, formatter.getClass());
formatter = factory.getFormatter(M.class, locale, null, null);
- Assert.assertEquals(YTC.class, formatter.getClass());
+ Assert.assertEquals(YFormatter.class, formatter.getClass());
formatter = factory.getFormatter(N.class, locale, null, null);
- Assert.assertEquals(YTC.class, formatter.getClass());
+ Assert.assertEquals(YFormatter.class, formatter.getClass());
formatter = factory.getFormatter(O.class, locale, null, null);
- Assert.assertEquals(YTC.class, formatter.getClass());
+ Assert.assertEquals(YFormatter.class, formatter.getClass());
formatter = factory.getFormatter(P.class, locale, null, null);
- Assert.assertEquals(YTC.class, formatter.getClass());
+ Assert.assertEquals(YFormatter.class, formatter.getClass());
- factory.add(Z.class, ZTC.class);
+ factory.add(Z.class, ZFormatter.class);
formatter = factory.getFormatter(L.class, locale, null, null);
- Assert.assertEquals(XTC.class, formatter.getClass());
+ Assert.assertEquals(XFormatter.class, formatter.getClass());
formatter = factory.getFormatter(M.class, locale, null, null);
- Assert.assertEquals(YTC.class, formatter.getClass());
+ Assert.assertEquals(YFormatter.class, formatter.getClass());
formatter = factory.getFormatter(N.class, locale, null, null);
- Assert.assertEquals(ZTC.class, formatter.getClass());
+ Assert.assertEquals(ZFormatter.class, formatter.getClass());
formatter = factory.getFormatter(O.class, locale, null, null);
- Assert.assertEquals(YTC.class, formatter.getClass());
+ Assert.assertEquals(YFormatter.class, formatter.getClass());
formatter = factory.getFormatter(P.class, locale, null, null);
- Assert.assertEquals(ZTC.class, formatter.getClass());
+ Assert.assertEquals(ZFormatter.class, formatter.getClass());
}
@Test(groups = "fast")
@@ -105,11 +105,49 @@
Assert.assertNull(formatter);
// then register formatter for A and try to get formatter for C
- factory.add(A.class, ATC.class);
+ factory.add(A.class, AFormatter.class);
formatter = factory.getFormatter(A.class, locale, null, null);
- Assert.assertEquals(ATC.class, formatter.getClass());
+ Assert.assertEquals(AFormatter.class, formatter.getClass());
}
+ @Test(groups = "fast")
+ public void testFormatterSuperclassImplementsInterface() throws Exception {
+ DefaultFormatterFactory factory = new DefaultFormatterFactory();
+ factory.init(new DefaultConfiguration());
+
+ Locale locale = Locale.getDefault();
+ Formatter<?> formatter;
+
+ // simple test to get formatter for a superclass interface
+ factory.add(X.class, XFormatter.class);
+ factory.add(Y.class, YFormatter.class);
+ factory.add(Z.class, ZFormatter.class);
+
+ formatter = factory.getFormatter(SuperclassImplementsX.class, locale,
null, null);
+ Assert.assertEquals(XFormatter.class, formatter.getClass());
+ formatter = factory.getFormatter(SuperclassImplementsY.class, locale,
null, null);
+ Assert.assertEquals(YFormatter.class, formatter.getClass());
+ formatter = factory.getFormatter(SuperclassImplementsZ.class, locale,
null, null);
+ Assert.assertEquals(ZFormatter.class, formatter.getClass());
+
+ /*
+ * test that if Z extends Y extends X and Y implements I and a
formatter is registered for
+ * both X and I then the formatter returned for Y and Z is the I
formatter
+ */
+ factory = new DefaultFormatterFactory();
+ factory.init(new DefaultConfiguration());
+
+ factory.add(SuperclassImplementsX.class, XFormatter.class); // mapping
for base class
+ factory.add(Y.class, YFormatter.class); // mapping for interface in
the middle
+
+ formatter = factory.getFormatter(SuperclassImplementsX.class, locale,
null, null);
+ Assert.assertEquals(XFormatter.class, formatter.getClass());
+ formatter = factory.getFormatter(SuperclassImplementsY.class, locale,
null, null);
+ Assert.assertEquals(YFormatter.class, formatter.getClass());
+ formatter = factory.getFormatter(SuperclassImplementsZ.class, locale,
null, null);
+ Assert.assertEquals(YFormatter.class, formatter.getClass());
+ }
+
public static class A {
}
@@ -137,13 +175,13 @@
}
}
- public static class ATC extends DummyFormatter<A> {
+ public static class AFormatter extends DummyFormatter<A> {
}
- public static class BTC extends DummyFormatter<B> {
+ public static class BFormatter extends DummyFormatter<B> {
}
- public static class CTC extends DummyFormatter<C> {
+ public static class CFormatter extends DummyFormatter<C> {
}
public interface X {
@@ -170,12 +208,21 @@
public static class P extends O implements Z {
}
- public static class XTC extends DummyFormatter<X> {
+ public static class SuperclassImplementsX extends L {
}
- public static class YTC extends DummyFormatter<Y> {
+ public static class SuperclassImplementsY extends M {
}
- public static class ZTC extends DummyFormatter<Z> {
+ public static class SuperclassImplementsZ extends N {
}
+
+ public static class XFormatter extends DummyFormatter<X> {
+ }
+
+ public static class YFormatter extends DummyFormatter<Y> {
+ }
+
+ public static class ZFormatter 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