rake-runner-test/src/jetbrains/slow/plugins/rakerunner/BundlerUtilTest.java (68 lines of code) (raw):

package jetbrains.slow.plugins.rakerunner; import java.io.File; import java.io.IOException; import jetbrains.buildServer.agent.rakerunner.utils.BundlerUtil; import jetbrains.buildServer.rakerunner.RakeRunnerConstants; import jetbrains.buildServer.serverSide.SimpleParameter; import jetbrains.buildServer.util.FileUtil; import jetbrains.buildServer.util.TestFor; import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.testng.annotations.BeforeClass; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; /** * @author Vladislav Rassokhin (vlad.rassokhin@gmail.com) */ @TestFor(testForClass = BundlerUtil.class) public class BundlerUtilTest extends AbstractRakeRunnerTest { private static final Logger LOG; static { LOG = Logger.getLogger(BundlerUtilTest.class); LOG.setLevel(Level.DEBUG); } private File myCheckoutDirectory; private File wd1; private File wd2; @BeforeClass protected final void doPrepareWorkingDir() throws Throwable { myCheckoutDirectory = FileUtil.createTempDirectory(getTestDataApp(), "", getTempsContainerDir()).getAbsoluteFile(); myCheckoutDirectory.deleteOnExit(); // Copy test data final File source = getTestDataPath(getTestDataApp()); FileUtil.copyDir(source, myCheckoutDirectory); wd1 = new File(myCheckoutDirectory, "wd1"); copyGemFileAndRakefile(wd1); wd2 = new File(myCheckoutDirectory, "wd2"); copyGemFileAndRakefile(wd2); } private String getTestDataApp() { return "bundler_checkout_test"; } /** * Declared final because bug in TestNG. */ @BeforeMethod @Override public final void setUp1() throws Throwable { super.setUp1(); useRVMGemSet(""); setUseBundle(true); setPartialMessagesChecker(); getBuildType().setCheckoutDirectory(myCheckoutDirectory.getAbsolutePath()); doInstallBundlerGem(LOG); } @Test @TestFor(issues = "TW-31718") public void testDetermineGemfilePath() throws Throwable { initAndDoTest("check", "_cd", true, getTestDataApp(), myCheckoutDirectory); initAndDoTest("check", "_wd1", true, getTestDataApp(), wd1); initAndDoTest("check", "_wd2", true, getTestDataApp(), wd2); } @Test @TestFor(issues = "TW-31718") public void testDetermineGemfilePathOldStyle() throws Throwable { getBuildType().addBuildParameter(new SimpleParameter(RakeRunnerConstants.GEMFILE_RESOLVE_IN_CHECKOUT_DIRECTORY, "true")); initAndDoTest("check", "_cd", true, getTestDataApp(), myCheckoutDirectory); initAndDoTest("check", "_old_wd1", true, getTestDataApp(), wd1); initAndDoTest("check", "_old_wd2", true, getTestDataApp(), wd2); } private void copyGemFileAndRakefile(final File to) throws IOException { final File source = getTestDataPath(getTestDataApp()); FileUtil.copy(new File(source, "Gemfile"), new File(to, "Gemfile")); FileUtil.copy(new File(source, "Rakefile"), new File(to, "Rakefile")); } }