in rake-runner-test/src/jetbrains/slow/plugins/rakerunner/RVMInfoUtilTest.java [71:113]
private void setupScriptingFactory(@NotNull final String currentOutput, @NotNull final Map<String, String> infoMap) {
ScriptingRunnersProvider.setRVMDefault(new ScriptingRunnersProvider() {
@NotNull
@Override
public RubyScriptRunner getRubyScriptRunner() {
throw new UnsupportedOperationException("This is a mock for tests");
}
@NotNull
@Override
public ShellScriptRunner getShellScriptRunner() {
return new ShellScriptRunner() {
@NotNull
public ExecResult run(@NotNull final String script,
@NotNull final String workingDirectory,
@Nullable final Map<String, String> environment) {
final String[] strings = script.split(" ");
Assert.assertTrue(strings.length >= 2);
Assert.assertEquals(strings[0], "rvm", "Must starts with 'rvm'");
if ("current".equals(strings[1])) {
final ExecResult result = new ExecResult();
result.setExitCode(0);
result.setStdout(currentOutput);
return result;
} else if ("info".equals(strings[1])) {
final String type = strings[2];
Assert.assertNotNull(type);
final String ret = infoMap.get(type);
Assert.assertNotNull(ret, "Not found: " + type);
final ExecResult result = new ExecResult();
result.setExitCode(0);
result.setStdout(ret);
return result;
} else {
Assert.fail("Mock does not supports command '" + script + "'");
return null;
}
}
};
}
});
}