* {@link Float} but an {@link DeclarationType#EXPLICIT} bind done overrides these automatic
* binds. They are removed and no {@link Injectron} is created for them.
*/
@Test
public void thatBindingsAreReplacedByMorePreciseOnes() {
Injector injector = Bootstrap.injector( ReplacingBindsModule.class );
assertEquals( 6, injector.resolve( dependency( Number.class ) ) );
Injectron<?>[] injectrons = injector.resolve( dependency( Injectron[].class ) );
assertEquals( 7, injectrons.length ); // 3x Comparable, Float, Double, Integer and Number (3x Serializable has been nullified)
Injectron<Number>[] numberInjectrons = injector.resolve( dependency( injectronsTypeOf( Number.class ) ) );
assertEquals( 1, numberInjectrons.length );
@SuppressWarnings ( "rawtypes" )
Injectron<Comparable>[] compareableInjectrons = injector.resolve( dependency( injectronsTypeOf( Comparable.class ) ) );
assertEquals( 3, compareableInjectrons.length );
}