@Test
public void testBasicUsage() throws Throwable {

  Statement base = verifyChildDelegateStatement();
  Statement result = mRule.apply(base, mFrameworkMethod, mTarget);
  result.evaluate();
  InOrder inOrder = Mockito.inOrder(mConfig, mBuilderProvider, mBuilder, base, mConfig, mChildConfig);
  inOrder.verify(mBuilder).deepCopy();
  inOrder.verify(mBuilder).testResourcesWithoutLifecycle(mTarget);
  inOrder.verify(mBuilder).buildInternal();
  inOrder.verify(mConfig).setup(mOriginal);
  inOrder.verify(base).evaluate();
  inOrder.verify(mConfig).teardown();
  assertRuleNoLongerWorks();
}