### Question:
AbstractComponentSwitcher implements ComponentSwitcher { @Override public final void switchToSlave() { updateDelegate( getSlaveImpl() ); } protected  AbstractComponentSwitcher( DelegateInvocationHandler<T> delegate ); @Override final void switchToMaster(); @Override final void switchToSlave(); @Override final void switchToPending();  }### Answer:
@Test public void switchesToSlave() throws Throwable { DelegateInvocationHandler<Component> delegate = new DelegateInvocationHandler<>( Component.class ); TestComponentSwitcher switcher = new TestComponentSwitcher( delegate ); switcher.switchToSlave(); assertEquals( delegateClass( delegate ), SlaveComponent.class ); }