@Test
  public void installsFacet_andDelegatesToClassSubstitutor() {

    expectNoMethodsRemoved();
    context.checking(
        new Expectations() {
          {
            one(classSubstitutor).getClass(CustomerAsManufacturedByCglibByteCodeEnhancer.class);
            will(returnValue(Customer.class));
          }
        });

    facetFactory.process(
        new ProcessClassContext(
            CustomerAsManufacturedByCglibByteCodeEnhancer.class, methodRemover, facetHolderImpl));

    final ObjectSpecIdFacet facet = facetHolderImpl.getFacet(ObjectSpecIdFacet.class);

    assertThat(facet, is(not(nullValue())));
    assertThat(facet instanceof ObjectSpecIdFacetDerivedFromClassName, is(true));
    assertThat(facet.value(), is(ObjectSpecId.of(Customer.class.getCanonicalName())));
  }
 @Before
 public void setUp() throws Exception {
   facetFactory = new ObjectTypeDerivedFromClassNameFacetFactory();
   facetFactory.setSpecificationLookup(reflector);
   facetFactory.setClassSubstitutor(classSubstitutor);
 }