public async Task CanCheckIfPullRequestsExist() { var sut = vContainer.Resolve <IGitHubUtilities>(); var errorsAndInfos = new ErrorsAndInfos(); var hasOpenPullRequest = await HasOpenPullRequestAsync(sut, "", errorsAndInfos); if (hasOpenPullRequest.Inconclusive) { return; } Assert.IsFalse(errorsAndInfos.AnyErrors(), errorsAndInfos.ErrorsPlusRelevantInfos()); Assert.IsTrue(hasOpenPullRequest.YesNo); hasOpenPullRequest = await HasOpenPullRequestAsync(sut, "1", errorsAndInfos); if (hasOpenPullRequest.Inconclusive) { return; } Assert.IsFalse(errorsAndInfos.AnyErrors(), errorsAndInfos.ErrorsPlusRelevantInfos()); Assert.IsFalse(hasOpenPullRequest.YesNo); hasOpenPullRequest = await HasOpenPullRequestForThisBranchAsync(sut, true, errorsAndInfos); if (hasOpenPullRequest.Inconclusive) { return; } Assert.IsFalse(errorsAndInfos.AnyErrors(), errorsAndInfos.ErrorsPlusRelevantInfos()); Assert.IsFalse(hasOpenPullRequest.YesNo); hasOpenPullRequest = await HasOpenPullRequestForThisBranchAsync(sut, false, errorsAndInfos); if (hasOpenPullRequest.Inconclusive) { return; } Assert.IsFalse(errorsAndInfos.AnyErrors(), errorsAndInfos.ErrorsPlusRelevantInfos()); Assert.IsTrue(hasOpenPullRequest.YesNo); var hasPullRequest = await HasPullRequestForThisBranchAndItsHeadTipAsync(sut, errorsAndInfos); if (hasOpenPullRequest.Inconclusive) { return; } Assert.IsFalse(errorsAndInfos.AnyErrors(), errorsAndInfos.ErrorsPlusRelevantInfos()); Assert.IsTrue(hasPullRequest.YesNo); }
public void CanCheckIfIsBranchAheadOfMaster() { var errorsAndInfos = new ErrorsAndInfos(); CloneRepository(DoNotPullFolder.Folder(), "do-not-pull-from-me", errorsAndInfos); Assert.IsFalse(errorsAndInfos.AnyErrors(), errorsAndInfos.ErrorsPlusRelevantInfos()); Assert.IsFalse(vSut.IsBranchAheadOfMaster(MasterFolder)); vContainer.Resolve <IEmbeddedCakeScriptCopier>().CopyCakeScriptEmbeddedInAssembly(Assembly.GetExecutingAssembly(), BuildCake.Standard, DoNotPullFolder, errorsAndInfos); Assert.IsFalse(errorsAndInfos.AnyErrors(), errorsAndInfos.ErrorsPlusRelevantInfos()); TargetRunner.RunBuildCakeScript(BuildCake.Standard, DoNotPullFolder, "CleanRestorePull", errorsAndInfos); Assert.IsFalse(errorsAndInfos.AnyErrors(), errorsAndInfos.ErrorsPlusRelevantInfos()); Assert.IsTrue(vSut.IsBranchAheadOfMaster(DoNotPullFolder.Folder())); }
public void Initialize() { vContainer = new ContainerBuilder().UseGittyAndPegh(new DummyCsArgumentPrompter()).UseGittyTestUtilities().Build(); vGitUtilities = vContainer.Resolve <IGitUtilities>(); var checkOutFolder = new Folder(Path.GetTempPath()).SubFolder("AspenlaubTemp").SubFolder(nameof(GitHubUtilitiesTest)); MasterFolder = checkOutFolder.SubFolder("PakledCore-Master"); DevelopmentFolder = checkOutFolder.SubFolder("PakledCore-Development"); CleanUp(); var errorsAndInfos = new ErrorsAndInfos(); CloneRepository(MasterFolder, "master", errorsAndInfos); Assert.IsFalse(errorsAndInfos.AnyErrors(), errorsAndInfos.ErrorsPlusRelevantInfos()); CloneRepository(DevelopmentFolder, "do-not-pull-from-me", errorsAndInfos); Assert.IsFalse(errorsAndInfos.AnyErrors(), errorsAndInfos.ErrorsPlusRelevantInfos()); }
public void CanCallScriptAgainstAlternativeTarget() { var errorsAndInfos = new ErrorsAndInfos(); Sut.CallCake(ScriptsFolder.FullName + @"\success.cake", "AlternativeTarget", errorsAndInfos); Assert.IsFalse(errorsAndInfos.Errors.Any(), errorsAndInfos.ErrorsPlusRelevantInfos()); Assert.IsTrue(errorsAndInfos.Infos.Any(i => i.Contains("This is an alternative target"))); }
public void CanIdentifyUrlOwnerAndName() { var errorsAndInfos = new ErrorsAndInfos(); vSut.IdentifyOwnerAndName(MasterFolder, out var owner, out var name, errorsAndInfos); Assert.IsFalse(errorsAndInfos.AnyErrors(), errorsAndInfos.ErrorsPlusRelevantInfos()); Assert.AreEqual("aspenlaub", owner); Assert.AreEqual("PakledCore", name); }
public void CanDetermineUncommittedChanges() { var errorsAndInfos = new ErrorsAndInfos(); vSut.VerifyThatThereAreNoUncommittedChanges(MasterFolder, errorsAndInfos); Assert.IsFalse(errorsAndInfos.AnyErrors(), errorsAndInfos.ErrorsPlusRelevantInfos()); File.WriteAllText(MasterFolder.FullName + @"\change.cs", @"This is not a change"); vSut.VerifyThatThereAreNoUncommittedChanges(MasterFolder, errorsAndInfos); Assert.IsTrue(errorsAndInfos.Errors.Any(e => e.Contains(@"change.cs"))); }
public async Task CanGetManuallyUpdatedPackages() { var errorsAndInfos = new ErrorsAndInfos(); var secret = new SecretManuallyUpdatedPackages(); var container = new ContainerBuilder().UsePegh(new DummyCsArgumentPrompter()).Build(); var manuallyUpdatedPackages = await container.Resolve <ISecretRepository>().GetAsync(secret, errorsAndInfos); Assert.IsFalse(errorsAndInfos.AnyErrors(), errorsAndInfos.ErrorsPlusRelevantInfos()); Assert.IsNotNull(manuallyUpdatedPackages); }
public void CanCallScriptWithoutErrors() { var errorsAndInfos = new ErrorsAndInfos(); Sut.CallCake(ScriptsFolder.FullName + @"\success.cake", errorsAndInfos); Assert.IsFalse(errorsAndInfos.Errors.Any(), errorsAndInfos.ErrorsPlusRelevantInfos()); Assert.IsTrue(errorsAndInfos.Infos.Any(m => m.Contains(@"Task"))); Assert.IsTrue(errorsAndInfos.Infos.Any(m => m.Contains(@"Duration"))); Assert.IsTrue(errorsAndInfos.Infos.Any(m => m.Contains(@"00:00:00"))); }
public void CanCallScriptWithNet5Addin() { var errorsAndInfos = new ErrorsAndInfos(); Sut.CallCake(ScriptsFolder.FullName + @"\net5.cake", errorsAndInfos); Assert.IsFalse(errorsAndInfos.Errors.Any(), errorsAndInfos.ErrorsPlusRelevantInfos()); const string constructionStatement = "Constructing a strong thing"; Assert.IsTrue(errorsAndInfos.Infos.Contains(constructionStatement)); Assert.AreEqual("Success", errorsAndInfos.Infos[errorsAndInfos.Infos.IndexOf(constructionStatement) + 1]); }
public void UnchangedBinariesAreNotListed() { var sut = Container.Resolve <IChangedBinariesLister>(); Assert.IsNotNull(sut); var errorsAndInfos = new ErrorsAndInfos(); var changedBinaries = sut.ListChangedBinaries("Pegh", PreviousHeadTipIdSha, CurrentHeadTipIdSha, errorsAndInfos); Assert.IsFalse(errorsAndInfos.AnyErrors(), errorsAndInfos.ErrorsPlusRelevantInfos()); Assert.IsFalse(changedBinaries.Any()); }
public async Task CanCheckHowManyPullRequestsExist() { var sut = vContainer.Resolve <IGitHubUtilities>(); var errorsAndInfos = new ErrorsAndInfos(); try { var numberOfPullRequests = await sut.GetNumberOfPullRequestsAsync(MasterFolder, errorsAndInfos); Assert.IsFalse(errorsAndInfos.AnyErrors(), errorsAndInfos.ErrorsPlusRelevantInfos()); Assert.IsTrue(numberOfPullRequests > 0); } catch (WebException) { } }
public void Initialize() { vSut = vContainer.Resolve <IGitUtilities>(); var checkOutFolder = new Folder(Path.GetTempPath()).SubFolder("AspenlaubTemp").SubFolder(nameof(GitUtilitiesTest)); DevelopmentFolder = checkOutFolder.SubFolder("PakledCore-Development"); MasterFolder = checkOutFolder.SubFolder("PakledCore-Master"); NoGitFolder = checkOutFolder.SubFolder("NoGit"); DoNotPullFolder.Delete(); CleanUp(); var errorsAndInfos = new ErrorsAndInfos(); CloneRepository(MasterFolder, "master", errorsAndInfos); Assert.IsFalse(errorsAndInfos.AnyErrors(), errorsAndInfos.ErrorsPlusRelevantInfos()); CloneRepository(DevelopmentFolder, "development", errorsAndInfos); Assert.IsFalse(errorsAndInfos.AnyErrors(), errorsAndInfos.ErrorsPlusRelevantInfos()); if (!NoGitFolder.Exists()) { Directory.CreateDirectory(NoGitFolder.FullName); } }
public void BuildCakeUsesRightPackageVersion() { var version = typeof(INugetPackageUpdater).Assembly.GetName().Version; Assert.IsNotNull(version); Assert.IsTrue(version.ToString().StartsWith("2.0.")); var errorsAndInfos = new ErrorsAndInfos(); var buildCake = vContainer.Resolve <IEmbeddedCakeScriptReader>().ReadCakeScriptFromAssembly(Assembly.GetExecutingAssembly(), BuildCake.Standard, errorsAndInfos).Split("\n"); Assert.IsFalse(errorsAndInfos.Errors.Any(), errorsAndInfos.ErrorsPlusRelevantInfos()); Assert.IsTrue(buildCake.Any(s => s.Contains("Fusion") & s.Contains($"version={version}")), $"Build cake does not use Fusion version {version}"); }
public void CanListChangedBinaries() { var sut = Container.Resolve <IChangedBinariesLister>(); Assert.IsNotNull(sut); var errorsAndInfos = new ErrorsAndInfos(); var changedBinaries = sut.ListChangedBinaries("Pegh", BeforeMajorChangeHeadTipSha, CurrentHeadTipIdSha, errorsAndInfos); Assert.IsFalse(errorsAndInfos.AnyErrors(), errorsAndInfos.ErrorsPlusRelevantInfos()); Assert.AreEqual(3, changedBinaries.Count); Assert.IsTrue(changedBinaries.Any(c => c.FileName == "Aspenlaub.Net.GitHub.CSharp.Pegh.dll")); Assert.IsTrue(changedBinaries.Any(c => c.FileName == "Aspenlaub.Net.GitHub.CSharp.Pegh.pdb")); Assert.IsTrue(changedBinaries.Any(c => c.FileName == "Aspenlaub.Net.GitHub.CSharp.Pegh.deps.json")); }
public async Task CanListAndCopyChangedBinaries() { var lister = Container.Resolve <IChangedBinariesLister>(); var errorsAndInfos = new ErrorsAndInfos(); var changedBinaries = lister.ListChangedBinaries(RepositoryId, BeforeMajorChangeHeadTipSha, CurrentHeadTipIdSha, errorsAndInfos); Assert.AreEqual(3, changedBinaries.Count); var sourceFolder = WorkFolder.SubFolder("Source"); sourceFolder.CreateIfNecessary(); var destinationFolder = WorkFolder.SubFolder("Destination"); destinationFolder.CreateIfNecessary(); foreach (var changedBinary in changedBinaries) { await File.WriteAllTextAsync(sourceFolder.FullName + '\\' + changedBinary.FileName, changedBinary.FileName); await File.WriteAllTextAsync(destinationFolder.FullName + '\\' + changedBinary.FileName, "Old " + changedBinary.FileName); await File.WriteAllTextAsync(destinationFolder.FullName + @"\Unchanged" + changedBinary.FileName, "Unchanged " + changedBinary.FileName); } await File.WriteAllTextAsync(sourceFolder.FullName + @"\SomeNewFile.txt", "SomeNewFile"); var sut = Container.Resolve <IFolderUpdater>(); await sut.UpdateFolderAsync(RepositoryId, BeforeMajorChangeHeadTipSha, sourceFolder, CurrentHeadTipIdSha, destinationFolder, true, true, "aspenlaub.local", errorsAndInfos); Assert.IsFalse(errorsAndInfos.AnyErrors(), errorsAndInfos.ErrorsPlusRelevantInfos()); foreach (var changedBinary in changedBinaries) { Assert.AreEqual(changedBinary.FileName, await File.ReadAllTextAsync(sourceFolder.FullName + '\\' + changedBinary.FileName)); Assert.AreEqual(changedBinary.FileName, await File.ReadAllTextAsync(destinationFolder.FullName + '\\' + changedBinary.FileName)); Assert.AreEqual("Unchanged " + changedBinary.FileName, await File.ReadAllTextAsync(destinationFolder.FullName + @"\Unchanged" + changedBinary.FileName)); } Assert.IsTrue(File.Exists(destinationFolder.FullName + @"\SomeNewFile.txt")); Assert.AreEqual("SomeNewFile", await File.ReadAllTextAsync(destinationFolder.FullName + @"\SomeNewFile.txt")); }