[picocontainer-scm] [5807] java/2.x/trunk/pico/container/src/test/org/picocontainer/defaults/issues/Issue0382TestCase.java: Patch applied for issue #382

paul-yCVjj/[email protected] Wed, 9 Nov 2011 18:53:18 -0600 (CST)
Newsgroups gmane.comp.java.picocontainer.cvs
Message-ID <[email protected]>
Revision 5807
Author paul
Date 2011-11-09 18:53:18 -0600 (Wed, 09 Nov 2011)

Log Message

Patch applied for issue #382

Added Paths

- java/2.x/trunk/pico/container/src/test/org/picocontainer/defaults/issues/Issue0382TestCase.java

Diff

Added: java/2.x/trunk/pico/container/src/test/org/picocontainer/defaults/issues/Issue0382TestCase.java (0 => 5807)

--- java/2.x/trunk/pico/container/src/test/org/picocontainer/defaults/issues/Issue0382TestCase.java (rev 0)
+++ java/2.x/trunk/pico/container/src/test/org/picocontainer/defaults/issues/Issue0382TestCase.java 2011-11-10 00:53:18 UTC (rev 5807)
@@ -0,0 +1,100 @@
+package org.picocontainer.defaults.issues;
+
+import static java.util.Arrays.asList;
+import static org.junit.Assert.assertEquals;
+
+import java.util.List;
+
+import org.junit.Test;
+import org.picocontainer.DefaultPicoContainer;
+
+public class Issue0382TestCase {
+
+ public interface Paramaterized<T> {
+ T get();
+ }
+
+ public static class StringParameterized implements Paramaterized<String> {
+
+ public String get() {
+ return "Hello World";
+ }
+ }
+
+ public static class AcceptsParameterized {
+ private final Paramaterized<?> _paramaterized;
+ private final String[] _strings;
+
+ public AcceptsParameterized(final Paramaterized<?> paramaterized, final String...strings) {
+ _paramaterized = paramaterized;
+ _strings = strings;
+ }
+ }
+
+ public static class AcceptsParameterizedWithWildcardArray extends AcceptsParameterized {
+ public AcceptsParameterizedWithWildcardArray(final Paramaterized<?> paramaterized, final String...strings) {
+ super(paramaterized, strings);
+ }
+ }
+
+ public static class AcceptsParameterizedWithoutWildcardArray extends AcceptsParameterized {
+ // Note wildcard is omitted deliberately.
+ public AcceptsParameterizedWithoutWildcardArray(@SuppressWarnings("rawtypes") final Paramaterized paramaterized, final String...strings) {
+ super(paramaterized, strings);
+ }
+ }
+
+
+ public static class AcceptsParameterizedWithWildcardList extends AcceptsParameterized {
+ public AcceptsParameterizedWithWildcardList(final Paramaterized<?> paramaterized, final List<String> strings) {
+ super(paramaterized, strings.toArray(new String[3]));
+ }
+ }
+
+ public static class AcceptsParameterizedWithoutWildcardList extends AcceptsParameterized {
+ // Note wildcard is omitted deliberately.
+ public AcceptsParameterizedWithoutWildcardList(@SuppressWarnings("rawtypes") final Paramaterized paramaterized, final List<String> strings) {
+ super(paramaterized, strings.toArray(new String[3]));
+ }
+ }
+
+ @Test
+ public void testWithWildcardArray() throws Exception {
+ Class<? extends AcceptsParameterized> type = AcceptsParameterizedWithWildcardArray.class;
+ assertConstructs(type);
+ }
+
+ @Test
+ public void testWithoutWildcardArray() throws Exception {
+ Class<? extends AcceptsParameterized> type = AcceptsParameterizedWithoutWildcardArray.class;
+ assertConstructs(type);
+ }
+
+
+ @Test
+ public void testWithWildcardList() throws Exception {
+ Class<? extends AcceptsParameterized> type = AcceptsParameterizedWithWildcardList.class;
+ assertConstructs(type);
+ }
+
+ @Test
+ public void testWithoutWildcardList() throws Exception {
+ Class<? extends AcceptsParameterized> type = AcceptsParameterizedWithoutWildcardList.class;
+ assertConstructs(type);
+ }
+
+ private void assertConstructs(final Class<? extends AcceptsParameterized> type) {
+ DefaultPicoContainer pico = new DefaultPicoContainer();
+ pico.addComponent(Paramaterized.class, StringParameterized.class);
+ pico.addComponent(type);
+ pico.addComponent(1, "one");
+ pico.addComponent(2, "two");
+ pico.addComponent(3, "three");
+ AcceptsParameterized component = pico.getComponent(AcceptsParameterized.class);
+ assertEquals("Hello World", component._paramaterized.get());
+ assertEquals(asList("one", "two", "three"), asList(component._strings));
+ }
+
+
+}
+

----------

To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email