/** * @deprecated Very very evil - TODO: get rid of this as part of #2055 */ public Materials getMaterials() { Materials materials = new Materials(); for (MaterialRevision revision : revisions) { materials.add(revision.getMaterial()); } return materials; }
private void initializeMaterialWithLatestRevision(Material material) { Materials materials = new Materials(); materialExpansionService.expandForHistory(material, materials); for (Material expanded : materials) { addNewMaterialWithModifications(folderFor(expanded), expanded, updater(expanded)); } }
@Test public void shouldNotRemoveJunkFoldersWhenCleanUpIsCalled_hasOneMaterialUseBaseFolderReturnsTrue() throws Exception { File junkFolder = temporaryFolder.newFolder("junk-folder"); Materials materials = new Materials(); GitMaterial gitMaterial = new GitMaterial("http://some-url.com", "some-branch"); materials.add(gitMaterial); materials.cleanUp(temporaryFolder.getRoot(), mock(ConsoleOutputStreamConsumer.class)); assertThat(junkFolder.exists(), is(true)); temporaryFolder.delete(); }
@Test public void shouldRemoveJunkFoldersWhenCleanUpIsCalled_hasOneMaterialUseBaseFolderReturnsFalse() throws Exception { File junkFolder = temporaryFolder.newFolder("junk-folder"); Materials materials = new Materials(); GitMaterial gitMaterial = new GitMaterial("http://some-url.com", "some-branch", "some-folder"); materials.add(gitMaterial); materials.cleanUp(temporaryFolder.getRoot(), mock(ConsoleOutputStreamConsumer.class)); assertThat(junkFolder.exists(), is(false)); temporaryFolder.delete(); }
public static Materials twoMaterials() { Materials materials = new Materials(); materials.add(svnMaterial("http://svnurl")); materials.add(hgMaterial("http://hgurl", "hgdir")); return materials; }
@Test public void shouldReturnExistingHgMaterialFromMaterialsIfItContainsOne() { Materials materials = new Materials(); HgMaterial existingMaterial = new HgMaterial("foo", null); materials.add(existingMaterial); assertThat(materials.getHgMaterial(), is(sameInstance(existingMaterial))); }
@Test public void shouldReturnLatestChangeSetForDependencyMaterial() { Materials materials = new Materials(MaterialsMother.dependencyMaterial()); MaterialRevisions original = modifyOneFile(materials, "1"); MaterialRevisions newRevisions = modifyOneFile(materials, "2"); assertThat(newRevisions.hasChangedSince(original), is(true)); }
@Test public void shouldReturnExistingGitMaterialFromMaterialsIfItContainsOne() { Materials materials = new Materials(); GitMaterial existingMaterial = new GitMaterial("foo"); materials.add(existingMaterial); assertThat(materials.getGitMaterial(), is(sameInstance(existingMaterial))); }
@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 shouldSetupEnvironmentVariableUsingDependencyMaterialName() throws IOException { EnvironmentVariableContext environmentVariableContext = doWorkWithMaterials(new Materials()); assertThat("Properties: \n" + environmentVariableContext.getProperties(), environmentVariableContext.getProperty("GO_DEPENDENCY_LOCATOR_DEPENDENCY_MATERIAL_NAME"), is("upstream2/0/first/1")); assertThat("Properties: \n" + environmentVariableContext.getProperties(), environmentVariableContext.getProperty("GO_DEPENDENCY_LABEL_DEPENDENCY_MATERIAL_NAME"), is("upstream2-label")); }
@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"})); }
@Test public void shouldNotGetPackageMaterialWhenOneOtherScmMaterialWithNoFolder() { Materials materials = new Materials(); Material material1 = new PackageMaterial("pid"); Material material2 = new HgMaterial("", null); materials.add(material1); materials.add(material2); assertThat(materials.byFolder(null), is(material2)); }
@Test public void shouldNotThrowNPEIfTheWorkingDirectoryIsEmpty() 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); FileUtils.deleteQuietly(pipelineDir); updateMaterials(materials, revision); }
private BuildWork getBuildWorkWithP4MaterialRevision(P4Material p4Material) { pipelineConfig.setMaterialConfigs(new Materials(p4Material).convertToConfigs()); JobPlan plan = new DefaultJobPlan(new Resources(), new ArrayList<>(), new ArrayList<>(), -1, new JobIdentifier(PIPELINE_NAME, 1, "1", STAGE_NAME, "1", JOB_NAME, 123L), null, new EnvironmentVariables(), new EnvironmentVariables(), null); MaterialRevisions materialRevisions = new MaterialRevisions(new MaterialRevision(p4Material, new Modification("user", "comment", "a@b.com", new Date(), "10"))); BuildCause buildCause = BuildCause.createWithModifications(materialRevisions, TRIGGERED_BY_USER); List<Builder> builders = new ArrayList<>(); builders.add(new CommandBuilder("ant", "", dir, new RunIfConfigs(), new NullBuilder(), "")); BuildAssignment assignment = BuildAssignment.create(plan, buildCause, builders, dir, environmentVariableContext, new ArtifactStores()); return new BuildWork(assignment, systemEnvironment.consoleLogCharset()); }
@Test public void shouldFindModificationsForBothMaterials() throws Exception { Materials materials = new Materials(repo.createMaterial("dest1"), repo.createMaterial("dest2")); String fileName = "newFile.txt"; repo.addFileAndPush(fileName, "add a new file " + fileName); MaterialRevisions materialRevisions = materials.latestModification(pipelineDir, new TestSubprocessExecutionContext()); assertThat(materialRevisions.getRevisions().size(), is(2)); assertThat(materialRevisions, containsModifiedFile(fileName)); } }
@Test public void shouldGetPluggableSCMMaterial_byFolder() { Materials materials = new Materials(); PluggableSCMMaterial material1 = new PluggableSCMMaterial("scm-id"); material1.setFolder("folder"); Material material2 = new HgMaterial("", "folder"); materials.add(material1); materials.add(material2); assertThat(materials.byFolder("folder"), is(material1)); }
@Test public void shouldSetEnvironmentVariableForSvnExternal() throws IOException { svnRepoFixture.createExternals(svnRepoFixture.getEnd2EndRepoUrl()); command = new SvnCommand(null, svnRepoFixture.getEnd2EndRepoUrl(), null, null, true); svnMaterial = SvnMaterial.createSvnMaterialWithMock(command); svnMaterial.setFolder("svn-Dir"); EnvironmentVariableContext environmentVariableContext = doWorkWithMaterials(new Materials(svnMaterial)); assertThat(environmentVariableContext.getProperty("GO_REVISION_SVN_DIR"), is("4")); assertThat(environmentVariableContext.getProperty("GO_REVISION_SVN_DIR_EXTERNAL"), is("4")); }
@Test public void shouldReturnMaterialBasedOnPiplineUniqueFingerPrint() { Materials materials = new Materials(); HgMaterial expectedMaterial = MaterialsMother.hgMaterial(); materials.add(expectedMaterial); materials.add(MaterialsMother.gitMaterial("url")); materials.add(MaterialsMother.svnMaterial("url", "folder")); Material actualMaterial = materials.getByFingerPrint(expectedMaterial.getPipelineUniqueFingerprint()); assertThat(actualMaterial, is(expectedMaterial)); }
@Test public void shouldReturnExistingDependencyMaterialFromMaterialsIfItContainsOne() { Materials materials = new Materials(); DependencyMaterial existingMaterial = new DependencyMaterial(new CaseInsensitiveString("foo"), new CaseInsensitiveString("bar")); materials.add(existingMaterial); assertThat(materials.getDependencyMaterial(), is(sameInstance(existingMaterial))); }
@Test public void shouldReturnTrueIfScmMaterialHasNoDestinationFolderSet() { Materials materials = new Materials(); SvnMaterial material1 = new SvnMaterial("url", "user", "pass", false); DependencyMaterial material2 = new DependencyMaterial(new CaseInsensitiveString("pipelineName"), new CaseInsensitiveString("stageName")); SvnMaterial material3 = new SvnMaterial("url", "user", "pass", false); material3.setFolder("foo"); materials.add(material1); materials.add(material2); assertThat(materials.scmMaterialsHaveDestination(), is(false)); }