public void invoke(TestPhase testPhase) throws Exception { switch (testPhase) { case SETUP: invokeMethod(testClassInstance, setupMethod, setupArguments); break; case LOCAL_WARMUP: invokeMethod(testClassInstance, localWarmupMethod); break; case GLOBAL_WARMUP: invokeMethod(testClassInstance, globalWarmupMethod); break; case RUN: run(); break; case GLOBAL_VERIFY: invokeMethod(testClassInstance, globalVerifyMethod); break; case LOCAL_VERIFY: invokeMethod(testClassInstance, localVerifyMethod); break; case GLOBAL_TEARDOWN: invokeMethod(testClassInstance, globalTeardownMethod); break; case LOCAL_TEARDOWN: invokeMethod(testClassInstance, localTeardownMethod); break; default: throw new UnsupportedOperationException("Unsupported test phase: " + testPhase); } }