assertEquals( 1, Iterables.count( module.findServices( SomeOtherFoo.class ) ) );
assertEquals( 2, Iterables.count( module.findServices( BasicFoo.class ) ) );
assertEquals( 2, Iterables.count( module.findServices( Foo.class ) ) );
assertEquals( CATHEDRAL, module.findService( SomeOtherFoo.class ).get().bar() );
// Exact type match first even if it is assembled _after_ an assignable, the assignable comes after
Iterator<ServiceReference<BasicFoo>> basicFoos = module.findServices( BasicFoo.class ).iterator();
assertEquals( BAZAR, basicFoos.next().get().bar() );
assertEquals( CATHEDRAL, basicFoos.next().get().bar() );