package com.intuit.tank.runner.method;
/*
* #%L
* Intuit Tank Agent (apiharness)
* %%
* Copyright (C) 2011 - 2015 Intuit Inc.
* %%
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
* #L%
*/
import javax.annotation.Nonnull;
import com.intuit.tank.harness.data.AuthenticationStep;
import com.intuit.tank.harness.data.ClearCookiesStep;
import com.intuit.tank.harness.data.CookieStep;
import com.intuit.tank.harness.data.LogicStep;
import com.intuit.tank.harness.data.SleepTimeStep;
import com.intuit.tank.harness.data.TestStep;
import com.intuit.tank.harness.data.ThinkTimeStep;
import com.intuit.tank.harness.data.TimerStep;
import com.intuit.tank.harness.data.VariableStep;
import com.intuit.tank.runner.TestStepContext;
public class RunnerFactory {
public static Runner getRunner(@Nonnull TestStepContext tsc) {
TestStep testStep = tsc.getTestStep();
Runner runner = null;
if (testStep instanceof ThinkTimeStep) {
runner = new ThinkTimeRunner(tsc);
} else if (testStep instanceof AuthenticationStep) {
runner = new AuthenticationRunner(tsc);
} else if (testStep instanceof SleepTimeStep) {
runner = new SleepTimeRunner(tsc);
} else if (testStep instanceof VariableStep) {
runner = new VariableRunner(tsc);
} else if (testStep instanceof TimerStep) {
runner = new TimerRunner(tsc);
} else if (testStep instanceof ClearCookiesStep) {
runner = new ClearCookiesRunner(tsc);
} else if (testStep instanceof LogicStep) {
runner = new LogicRunner(tsc);
} else if (testStep instanceof CookieStep) {
runner = new SetCookieRunner(tsc);
} else {
runner = new RequestRunner(tsc);
}
return runner;
}
}