/*
* Strongback
* Copyright 2015, Strongback and individual contributors by the @authors tag.
* See the COPYRIGHT.txt in the distribution for a full listing of individual
* contributors.
*
* Licensed under the MIT License; you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://opensource.org/licenses/MIT
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.strongback.command;
/**
* A Strongback testing utility that can be used in unit tests
*/
public class CommandTester {
private final CommandRunner runner;
public CommandTester(Command command) {
runner = new CommandRunner(command);
}
/**
* Steps through all of the state logic for its {@link Command}.
*
* @param timeInMillis the current system time in milliseconds
* @return {@code true} if this {@link CommandRunner} is ready to be terminated; {@code false} otherwise
*/
public boolean step(long timeInMillis) {
return runner.step(timeInMillis);
}
/**
* Schedules its {@link Command} to be canceled next iteration.
*/
public void cancel() {
runner.cancel();
}
public boolean isCancelled() {
return runner.isCancelled();
}
@Override
public String toString() {
return runner.toString();
}
}