private static PackageSearchMedatadata MetadataForVersion(int major, int minor, int patch) { var version = new NuGetVersion(major, minor, patch); var packageId = new PackageIdentity("foo", version); return(new PackageSearchMedatadata(packageId, PackageUpdates.OfficialPackageSource(), DateTimeOffset.Now, null)); }
public void TwoUpdatesSameVersion_MakeCommitDetails_HasStandardTexts() { var updates = PackageUpdates.For(MakePackageForV110(), MakePackageForV110InProject3()) .InList(); var report = _sut.MakeCommitDetails(updates); AssertContainsStandardText(report); }
public void TwoUpdatesSameVersion_MakeCommitDetails_HasVersionInfo() { var updates = PackageUpdates.For(MakePackageForV110(), MakePackageForV110InProject3()) .InList(); var report = _sut.MakeCommitDetails(updates); Assert.That(report, Does.StartWith("NuKeeper has generated a minor update of `foo.bar` to `1.2.3` from `1.1.0`")); }
public void TestWithSinglePackageAndBranchNamePrefix() { var packages = PackageUpdates.MakeUpdateSet("SomePackage") .InList(); var branchName = BranchNamer.MakeName(packages, BranchNameTemplate); Assert.That(branchName, Is.EqualTo("nukeeper/nukeeper-update-SomePackage-to-1.2.3")); }
public void OneUpdate_MakeCommitDetails_HasPublishedDate() { var updates = PackageUpdates.For(MakePackageForV110()) .InList(); var report = _sut.MakeCommitDetails(updates); Assert.That(report, Does.Contain("`foo.bar 1.2.3` was published at `2018-02-19T11:12:07Z`")); }
public void OneUpdate_MakeCommitDetails_HasVersionLimitData() { var updates = PackageUpdates.LimitedToMinor(MakePackageForV110()) .InList(); var report = _sut.MakeCommitDetails(updates); Assert.That(report, Does.Contain($"There is also a higher version, `foo.bar 2.3.4`, but this was not applied as only `Minor` version changes are allowed.")); }
public void OneUpdate_MakeCommitDetails_HasVersionInfo() { var updates = PackageUpdates.For(MakePackageForV110()) .InList(); var report = CommitWording.MakeCommitDetails(updates); Assert.That(report, Does.StartWith("NuKeeper has generated a minor update of `foo.bar` to `1.2.3` from `1.1.0`")); }
public void OneUpdateWithMajorVersionChange() { var updates = PackageUpdates.ForNewVersion(new PackageIdentity("foo.bar", new NuGetVersion("2.1.1")), MakePackageForV110()) .InList(); var report = CommitWording.MakeCommitDetails(updates); Assert.That(report, Does.StartWith("NuKeeper has generated a major update of `foo.bar` to `2.1.1` from `1.1.0")); }
public void OneUpdateWithPatchVersionChange() { var updates = PackageUpdates.ForNewVersion(new PackageIdentity("foo.bar", new NuGetVersion("1.1.9")), MakePackageForV110()) .InList(); var report = _sut.MakeCommitDetails(updates); Assert.That(report, Does.StartWith("NuKeeper has generated a patch update of `foo.bar` to `1.1.9` from `1.1.0")); }
public void OneUpdateInListCanBeWritten(Type reportType) { var rows = PackageUpdates.OnePackageUpdateSet(); var outData = ReportToString(reportType, rows); Assert.That(outData, Is.Not.Null); AssertExpectedEmpty(reportType, outData); }
public void OneUpdate_MakeCommitDetails_HasStandardTexts() { var updates = PackageUpdates.For(MakePackageForV110()) .InList(); var report = _sut.MakeCommitDetails(updates); AssertContainsStandardText(report); }
public async Task WhenThereAreUpdates_CountIsAsExpected( int numberOfUpdates, int existingCommitsPerBranch, bool consolidateUpdates, bool pullRequestExists, int expectedUpdates, int expectedPrs ) { var updateSelection = Substitute.For <IPackageUpdateSelection>(); var collaborationFactory = Substitute.For <ICollaborationFactory>(); var gitDriver = Substitute.For <IGitDriver>(); var existingCommitFilder = Substitute.For <IExistingCommitFilter>(); UpdateSelectionAll(updateSelection); gitDriver.GetCurrentHead().Returns("def"); gitDriver.CheckoutNewBranch(Arg.Any <string>()).Returns(true); collaborationFactory .CollaborationPlatform .PullRequestExists(Arg.Any <ForkData>(), Arg.Any <string>(), Arg.Any <string>()) .Returns(pullRequestExists); var packageUpdater = new PackageUpdater(collaborationFactory, existingCommitFilder, Substitute.For <IUpdateRunner>(), Substitute.For <INuKeeperLogger>()); var updates = Enumerable.Range(1, numberOfUpdates) .Select(_ => PackageUpdates.UpdateSet()) .ToList(); var filteredUpdates = updates.Skip(existingCommitsPerBranch).ToList().AsReadOnly(); existingCommitFilder.Filter(Arg.Any <IGitDriver>(), Arg.Any <IReadOnlyCollection <PackageUpdateSet> >(), Arg.Any <string>(), Arg.Any <string>()).Returns(filteredUpdates); var settings = MakeSettings(consolidateUpdates); var(repoUpdater, _) = MakeRepositoryUpdater( updateSelection, updates, packageUpdater); var repo = MakeRepositoryData(); var count = await repoUpdater.Run(gitDriver, repo, settings); Assert.That(count, Is.EqualTo(expectedUpdates), "Returned count of updates"); await collaborationFactory.CollaborationPlatform.Received(expectedPrs) .OpenPullRequest( Arg.Any <ForkData>(), Arg.Any <PullRequestRequest>(), Arg.Any <IEnumerable <string> >()); await gitDriver.Received(expectedUpdates).Commit(Arg.Any <string>()); }
public void OneUpdate_MakeCommitDetails_IsNotEmpty() { var updates = PackageUpdates.For(MakePackageForV110()) .InList(); var report = _sut.MakeCommitDetails(updates); Assert.That(report, Is.Not.Null); Assert.That(report, Is.Not.Empty); }
public void TwoUpdatesSameVersion_MakeCommitDetails_NotEmpty() { var updates = PackageUpdates.For(MakePackageForV110(), MakePackageForV110InProject3()) .InList(); var report = _sut.MakeCommitDetails(updates); Assert.That(report, Is.Not.Null); Assert.That(report, Is.Not.Empty); }
public void OneUpdateWithInternalPackageSource() { var updates = PackageUpdates.ForInternalSource(MakePackageForV110()) .InList(); var report = _sut.MakeCommitDetails(updates); Assert.That(report, Does.Not.Contain("on NuGet.org")); Assert.That(report, Does.Not.Contain("www.nuget.org")); }
public void MakeCommitMessage_TwoUpdatesSameVersionIsCorrect() { var updates = PackageUpdates.For(MakePackageForV110(), MakePackageForV110InProject3()); var report = _sut.MakeCommitMessage(updates); Assert.That(report, Is.Not.Null); Assert.That(report, Is.Not.Empty); Assert.That(report, Is.EqualTo($"{CommitEmoji} Automatic update of foo.bar to 1.2.3")); }
public void MakeCommitMessage_OneUpdateIsCorrect() { var updates = PackageUpdates.For(MakePackageForV110()); var report = CommitWording.MakeCommitMessage(updates); Assert.That(report, Is.Not.Null); Assert.That(report, Is.Not.Empty); Assert.That(report, Is.EqualTo(":package: Automatic update of foo.bar to 1.2.3")); }
public void TwoUpdates_MakeCommitDetails_NotEmpty() { var updates = PackageUpdates.For(MakePackageForV110(), MakePackageForV100()) .InList(); var report = CommitWording.MakeCommitDetails(updates); Assert.That(report, Is.Not.Null); Assert.That(report, Is.Not.Empty); }
public void OneUpdate_MakeCommitDetails_HasProjectDetails() { var updates = PackageUpdates.For(MakePackageForV110()) .InList(); var report = CommitWording.MakeCommitDetails(updates); Assert.That(report, Does.Contain("1 project update:")); Assert.That(report, Does.Contain("Updated `folder\\src\\project1\\packages.config` to `foo.bar` `1.2.3` from `1.1.0`")); }
public void MakeCommitMessage_TwoUpdatesIsCorrect() { var updates = PackageUpdates.For(MakePackageForV110(), MakePackageForV100()); var report = _sut.MakeCommitMessage(updates); Assert.That(report, Is.Not.Null); Assert.That(report, Is.Not.Empty); Assert.That(report, Is.EqualTo("Automatic update of foo.bar to 1.2.3")); }
public void TwoUpdates_MakeCommitDetails_HasStandardTexts() { var updates = PackageUpdates.For(MakePackageForV110(), MakePackageForV100()) .InList(); var report = _sut.MakeCommitDetails(updates); AssertContainsStandardText(report); Assert.That(report, Does.Contain("1.0.0")); }
public void TwoUpdates_MakeCommitDetails_HasVersionInfo() { var updates = PackageUpdates.For(MakePackageForV110(), MakePackageForV100()) .InList(); var report = _sut.MakeCommitDetails(updates); Assert.That(report, Does.StartWith("NuKeeper has generated a minor update of `foo.bar` to `1.2.3`")); Assert.That(report, Does.Contain("2 versions of `foo.bar` were found in use: `1.1.0`, `1.0.0`")); }
public void MarkPullRequestTitle_UpdateIsCorrect() { var updates = PackageUpdates.For(MakePackageForV110()) .InList(); var report = _sut.MakePullRequestTitle(updates); Assert.That(report, Is.Not.Null); Assert.That(report, Is.Not.Empty); Assert.That(report, Is.EqualTo($"{CommitEmoji} Automatic update of foo.bar to 1.2.3")); }
public void TwoUpdatesSameVersion_MakeCommitDetails_HasProjectList() { var updates = PackageUpdates.For(MakePackageForV110(), MakePackageForV110InProject3()) .InList(); var report = _sut.MakeCommitDetails(updates); Assert.That(report, Does.Contain("2 project updates:")); Assert.That(report, Does.Contain("Updated `folder\\src\\project1\\packages.config` to `foo.bar` `1.2.3` from `1.1.0`")); Assert.That(report, Does.Contain("Updated `folder\\src\\project3\\packages.config` to `foo.bar` `1.2.3` from `1.1.0`")); }
public void OneUpdateWithDate_MakeCommitDetails_HasVersionLimitDataWithDate() { var publishedAt = new DateTimeOffset(2018, 2, 20, 11, 32, 45, TimeSpan.Zero); var updates = PackageUpdates.LimitedToMinor(publishedAt, MakePackageForV110()) .InList(); var report = _sut.MakeCommitDetails(updates); Assert.That(report, Does.Contain($"There is also a higher version, `foo.bar 2.3.4` published at `2018-02-20T11:32:45Z`,")); Assert.That(report, Does.Contain(" ago, but this was not applied as only `Minor` version changes are allowed.")); }
public void TestWithTwoPackagesAndBranchNamePrefix() { var packages = new List <PackageUpdateSet> { PackageUpdates.MakeUpdateSet("SomePackage"), PackageUpdates.MakeUpdateSet("OtherPackage") }; var branchName = BranchNamer.MakeName(packages, BranchNameTemplate); Assert.That(branchName, Is.EqualTo("nukeeper/nukeeper-update-2-packages-AA9F9828431C8BFB7A18D3D8F0CF229D")); }
public void OneUpdate_MakeCommitDetails_HasProjectDetailsAsMarkdownTable() { var updates = PackageUpdates.For(MakePackageForV110()) .InList(); var report = _sut.MakeCommitDetails(updates); Assert.That(report, Does.Contain("### 1 project update:")); Assert.That(report, Does.Contain("| Project | Package | From | To |")); Assert.That(report, Does.Contain("|:----------|:----------|-------:|-----:|")); Assert.That(report, Does.Contain($"| `folder\\src\\project1\\packages.config` | `foo.bar` | {NuGetVersionPackageLink("foo.bar", "1.1.0")} | {NuGetVersionPackageLink("foo.bar", "1.2.3")} |")); }
public void WhenThereIsOneInput_ItIsTheTarget() { var updateSets = PackageUpdates.UpdateFooFromOneVersion() .InList(); var target = MakeSelection(); var results = target.SelectTargets(PushFork(), updateSets, NoFilter()); Assert.That(results, Is.Not.Null); Assert.That(results.Count, Is.EqualTo(1)); Assert.That(results.First().SelectedId, Is.EqualTo("foo")); }
public void TestWithThreePackagesAndBranchNamePrefix() { var packages = new List <PackageUpdateSet> { PackageUpdates.MakeUpdateSet("SomePackage"), PackageUpdates.MakeUpdateSet("OtherPackage"), PackageUpdates.MakeUpdateSet("SomethingElse"), }; var branchName = BranchNamer.MakeName(packages, BranchNameTemplate); Assert.That(branchName, Is.EqualTo("nukeeper/nukeeper-update-3-packages-BBBB3BF2315D6111CFCBF6A4A7A29DD8")); }
public void MakeCommitDetails_DoesNotExceedPullRequestBodyLimit() { var packageNameExceedingPullRequestBodyLimit = new string('a', MaxCharacterCount + 1); var updateSet = PackageUpdates.MakeUpdateSet(packageNameExceedingPullRequestBodyLimit) .InList(); var report = _sut.MakeCommitDetails(updateSet); Assert.That(report, Is.Not.Null); Assert.That(report, Is.Not.Empty); Assert.That(report.Length, Is.EqualTo(MaxCharacterCount)); Assert.That(report, Does.EndWith("...")); }