private BuildCommand updateMaterials() { if (!assignment.shouldFetchMaterials()) { return echoWithPrefix("Skipping material update since stage is configured not to fetch materials"); } MaterialRevisions materialRevisions = assignment.materialRevisions(); Materials materials = materialRevisions.getMaterials(); return BuildCommand.compose( materials.cleanUpCommand(workingDirectory()), echoWithPrefix("Start to update materials \n"), materialRevisions.updateToCommand(workingDirectory())); }
@Test public void shouldGenerateNoopCommandWhenCleanUpIsCalled_hasOneMaterialUseBaseFolderReturnsTrue() throws Exception { Materials materials = new Materials(); materials.add(new GitMaterial("http://some-url.com", "some-branch")); assertThat(materials.cleanUpCommand("foo"), is(BuildCommand.noop())); } }
@Test public void shouldGenerateCleanupCommandForRemovingJunkFoldersWhenCleanUpIsCalled_hasOneMaterialUseBaseFolderReturnsFalse() throws Exception { Materials materials = new Materials(); GitMaterial gitMaterial = new GitMaterial("http://some-url.com", "some-branch", "some-folder"); materials.add(gitMaterial); BuildCommand command = materials.cleanUpCommand("basedir"); assertThat(command.getName(), is("cleandir")); assertThat(command.getStringArg("path"), is("basedir")); assertThat(command.getArrayArg("allowed"), is(new String[]{"some-folder", "cruise-output"})); }