001 package org.picocontainer.defaults.issues; 002 003 import org.picocontainer.DefaultPicoContainer; 004 import org.picocontainer.parameters.CollectionComponentParameter; 005 import static org.junit.Assert.assertEquals; 006 import org.junit.Test; 007 008 import java.util.List; 009 010 public class Issue0343TestCase { 011 012 @Test 013 public void testRegisteringSubsetOfGenericCollectionParameters() { 014 DefaultPicoContainer pico = new DefaultPicoContainer(); 015 pico.addComponent(Cod.class); 016 pico.addComponent(Shark.class); 017 pico.addComponent(GenericBowl.class, GenericBowl.class, 018 new CollectionComponentParameter(Cod.class, false)); 019 020 GenericBowl bowl = pico.getComponent(GenericBowl.class); 021 // FAILS with PicoContainer 2.7-SNAPSHOT, returns 2 022 assertEquals(1, bowl.fishes.size()); 023 } 024 025 public static interface Fish { 026 } 027 028 public static class Cod implements Fish { 029 } 030 031 public static class Shark implements Fish { 032 } 033 034 public static class GenericBowl { 035 List<Fish> fishes; 036 037 public GenericBowl(List<Fish> fishes) { 038 this.fishes = fishes; 039 } 040 } 041 042 }