@SuppressWarnings("unchecked")
@Test
public void gatherInformation_NoneSingleton() {

    Constructor<Bean3> ctor = null;
    
    for (Constructor<?> tmp : Bean3.class.getDeclaredConstructors()) {
        if (tmp.getParameterTypes().length == 0) {
            ctor = (Constructor<Bean3>) tmp;
            break;
        }
    }
    
    typeContainer = new TypeContainer(Bean3.class, ctor);
    
    assertNull(typeContainer.injectionSets);
    
    typeContainer.gatherInformation();
    
    assertNotNull(typeContainer.injectionSets);
    assertEquals(3, typeContainer.injectionSets.length);
    assertEquals(Bean1.class, typeContainer.injectionSets[0].type);
    assertEquals(Bean2.class, typeContainer.injectionSets[1].type);
    assertEquals(Bean3.class, typeContainer.injectionSets[2].type);
    assertFalse(typeContainer.singleton);
    
    assertEquals(1, typeContainer.injectionSets[0].methods.length);
    assertEquals("contained1_1", typeContainer.injectionSets[0].methods[0].getName());
    
    assertEquals(1, typeContainer.injectionSets[0].staticMethods.length);
    assertEquals("contained1_2", typeContainer.injectionSets[0].staticMethods[0].getName());
    
    assertEquals(1, typeContainer.injectionSets[0].staticFields.length);
    assertEquals("contained1_3", typeContainer.injectionSets[0].staticFields[0].getName());
    
    assertEquals(1, typeContainer.injectionSets[0].fields.length);
    assertEquals("contained1_4", typeContainer.injectionSets[0].fields[0].getName());
    
    assertEquals(1, typeContainer.injectionSets[1].methods.length);
    assertEquals("contained2_1", typeContainer.injectionSets[1].methods[0].getName());
    
    assertEquals(1, typeContainer.injectionSets[1].staticMethods.length);
    assertEquals("contained2_2", typeContainer.injectionSets[1].staticMethods[0].getName());
    
    assertEquals(1, typeContainer.injectionSets[1].staticFields.length);
    assertEquals("contained2_3", typeContainer.injectionSets[1].staticFields[0].getName());
    
    assertEquals(1, typeContainer.injectionSets[1].fields.length);
    assertEquals("contained2_4", typeContainer.injectionSets[1].fields[0].getName());
    
    assertEquals(1, typeContainer.injectionSets[2].methods.length);
    assertEquals("contained3_1", typeContainer.injectionSets[2].methods[0].getName());
    
    assertEquals(1, typeContainer.injectionSets[2].staticMethods.length);
    assertEquals("contained3_2", typeContainer.injectionSets[2].staticMethods[0].getName());
    
    assertEquals(1, typeContainer.injectionSets[2].staticFields.length);
    assertEquals("contained3_3", typeContainer.injectionSets[2].staticFields[0].getName());
    
    assertEquals(1, typeContainer.injectionSets[2].fields.length);
    assertEquals("contained3_4", typeContainer.injectionSets[2].fields[0].getName());
}