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() );
assertFalse( basicFoos.hasNext() );
// No exact type match, all assembled are assignable, follows assembly Type order