use of com.thoughtworks.go.helper.GitSubmoduleRepos in project gocd by gocd.
the class GitCommandTest method shouldBombForResetWorkingDirWhenSubmoduleUpdateFails.
@Test
public void shouldBombForResetWorkingDirWhenSubmoduleUpdateFails() throws Exception {
GitSubmoduleRepos submoduleRepos = new GitSubmoduleRepos();
File submoduleFolder = submoduleRepos.addSubmodule(SUBMODULE, "sub1");
GitCommand gitWithSubmodule = new GitCommand(null, createTempWorkingDirectory(), GitMaterialConfig.DEFAULT_BRANCH, false, new HashMap<>(), null);
gitWithSubmodule.clone(inMemoryConsumer(), submoduleRepos.mainRepo().getUrl());
FileUtils.deleteDirectory(submoduleFolder);
assertThat(submoduleFolder.exists(), is(false));
try {
gitWithSubmodule.resetWorkingDir(new SysOutStreamConsumer(), new StringRevision("HEAD"));
fail("should have failed for non 0 return code");
} catch (Exception e) {
assertThat(e.getMessage(), new RegexMatcher(String.format("[Cc]lone of '%s' into submodule path '((.*)[\\/])?sub1' failed", Pattern.quote(submoduleFolder.getAbsolutePath()))));
}
}
use of com.thoughtworks.go.helper.GitSubmoduleRepos in project gocd by gocd.
the class GitCommandTest method shouldRetrieveSubmoduleUrls.
@Test
public void shouldRetrieveSubmoduleUrls() throws Exception {
GitSubmoduleRepos submoduleRepos = new GitSubmoduleRepos();
submoduleRepos.addSubmodule(SUBMODULE, "sub1");
GitCommand gitWithSubmodule = new GitCommand(null, createTempWorkingDirectory(), GitMaterialConfig.DEFAULT_BRANCH, false, new HashMap<>(), null);
InMemoryStreamConsumer outputStreamConsumer = inMemoryConsumer();
gitWithSubmodule.clone(outputStreamConsumer, submoduleRepos.mainRepo().getUrl());
gitWithSubmodule.fetchAndResetToHead(outputStreamConsumer);
gitWithSubmodule.updateSubmoduleWithInit(outputStreamConsumer);
Map<String, String> urls = gitWithSubmodule.submoduleUrls();
assertThat(urls.size(), is(1));
assertThat(urls.containsKey("sub1"), is(true));
assertThat(urls.get("sub1"), endsWith(SUBMODULE));
}
use of com.thoughtworks.go.helper.GitSubmoduleRepos in project gocd by gocd.
the class GitCommandTest method shouldOutputSubmoduleRevisionsAfterUpdate.
@Test
public void shouldOutputSubmoduleRevisionsAfterUpdate() throws Exception {
GitSubmoduleRepos submoduleRepos = new GitSubmoduleRepos();
submoduleRepos.addSubmodule(SUBMODULE, "sub1");
GitCommand gitWithSubmodule = new GitCommand(null, createTempWorkingDirectory(), GitMaterialConfig.DEFAULT_BRANCH, false, new HashMap<>(), null);
gitWithSubmodule.clone(inMemoryConsumer(), submoduleRepos.mainRepo().getUrl());
InMemoryStreamConsumer outConsumer = new InMemoryStreamConsumer();
gitWithSubmodule.resetWorkingDir(outConsumer, new StringRevision("HEAD"));
Matcher matcher = Pattern.compile(".*^\\s[a-f0-9A-F]{40} sub1 \\(heads/master\\)$.*", Pattern.MULTILINE | Pattern.DOTALL).matcher(outConsumer.getAllOutput());
assertThat(matcher.matches(), is(true));
}
use of com.thoughtworks.go.helper.GitSubmoduleRepos in project gocd by gocd.
the class GitMaterialUpdaterTest method shouldBombForFetchAndResetWhenSubmoduleUpdateFails.
@Test
public void shouldBombForFetchAndResetWhenSubmoduleUpdateFails() throws Exception {
GitSubmoduleRepos submoduleRepos = new GitSubmoduleRepos();
File submoduleFolder = submoduleRepos.addSubmodule(SUBMODULE, "sub1");
GitMaterial material = new GitMaterial(submoduleRepos.projectRepositoryUrl(), true);
FileUtils.deleteDirectory(submoduleFolder);
assertThat(submoduleFolder.exists(), Matchers.is(false));
updateTo(material, new RevisionContext(new StringRevision("origin/HEAD")), JobResult.Failed);
assertThat(console.output(), // git on windows prints full submodule paths
new RegexMatcher(String.format("[Cc]lone of '%s' into submodule path '((.*)[\\/])?sub1' failed", Pattern.quote(submoduleFolder.getAbsolutePath()))));
}
use of com.thoughtworks.go.helper.GitSubmoduleRepos in project gocd by gocd.
the class GitMaterialUpdaterTest method shouldOutputSubmoduleRevisionsAfterUpdate.
@Test
public void shouldOutputSubmoduleRevisionsAfterUpdate() throws Exception {
GitSubmoduleRepos submoduleRepos = new GitSubmoduleRepos();
submoduleRepos.addSubmodule(SUBMODULE, "sub1");
GitMaterial material = new GitMaterial(submoduleRepos.projectRepositoryUrl(), true);
updateTo(material, new RevisionContext(new StringRevision("origin/HEAD")), JobResult.Passed);
Matcher matcher = Pattern.compile(".*^\\s[a-f0-9A-F]{40} sub1 \\(heads/master\\)$.*", Pattern.MULTILINE | Pattern.DOTALL).matcher(console.output());
assertThat(matcher.matches(), Matchers.is(true));
}
Aggregations