// This is bug #2320 - Cruise doing full checkouts most times @Test public void shouldNotDeleteWorkingDirIfMaterialsAreCheckedOutToSubfoldersWithTheSameRootBug2320() throws Exception { SvnMaterial svnMaterial1 = repo.createMaterial("multiple-materials/trunk/part1", "root/part1"); SvnMaterial svnMaterial2 = repo.createMaterial("multiple-materials/trunk/part2", "root/part2"); Materials materials = new Materials(svnMaterial1, svnMaterial2); Revision revision = latestRevision(svnMaterial1, pipelineDir, new TestSubprocessExecutionContext()); updateMaterials(materials, revision); assertThat(new File(pipelineDir, "root/part1").exists(), is(true)); assertThat(new File(pipelineDir, "root/part2").exists(), is(true)); File testFile = new File(pipelineDir, "root/part1/test-file"); testFile.createNewFile(); assertThat(testFile.exists(), is(true)); // simulates what a build will do TestFileUtil.createTestFolder(pipelineDir, ArtifactLogUtil.CRUISE_OUTPUT_FOLDER); assertThat(pipelineDir.listFiles().length, is(2)); updateMaterials(materials, revision); assertThat(new File(pipelineDir, "root/part1").exists(), is(true)); assertThat(new File(pipelineDir, "root/part2").exists(), is(true)); assertThat("Should not delete the part1 directory", testFile.exists(), is(true)); }
@Test public void shouldNotDeleteDirectoriesWhenThereIsACruiseOutputDirectory() throws Exception { SvnMaterial svnMaterial1 = repo.createMaterial("multiple-materials/trunk/part1", "part1"); SvnMaterial svnMaterial2 = repo.createMaterial("multiple-materials/trunk/part2", "part2"); Materials materials = new Materials(svnMaterial1, svnMaterial2); Revision revision = latestRevision(svnMaterial1, pipelineDir, new TestSubprocessExecutionContext()); updateMaterials(materials, revision); assertThat(new File(pipelineDir, "part1").exists(), is(true)); assertThat(new File(pipelineDir, "part2").exists(), is(true)); File testFile = new File(pipelineDir, "part1/test-file"); testFile.createNewFile(); assertThat(testFile.exists(), is(true)); // simulates what a build will do TestFileUtil.createTestFolder(pipelineDir, ArtifactLogUtil.CRUISE_OUTPUT_FOLDER); assertThat(pipelineDir.listFiles().length, is(3)); updateMaterials(materials, revision); assertThat(new File(pipelineDir, "part1").exists(), is(true)); assertThat(new File(pipelineDir, "part2").exists(), is(true)); assertThat("Should not delete the part1 directory", testFile.exists(), is(true)); }