This repository has been archived by the owner on Jul 12, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 123
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* multipackage commit wording * Multipackage updates can't all have the same branch name! * Tests pass * Introduce md5 hash * Tests on branch namer * Another test - same input data, same hash
- Loading branch information
1 parent
4e50668
commit f86530d
Showing
7 changed files
with
218 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,116 @@ | ||
using System.Collections.Generic; | ||
using NuKeeper.Engine; | ||
using NuKeeper.Inspection.RepositoryInspection; | ||
using NUnit.Framework; | ||
|
||
namespace NuKeeper.Tests.Engine | ||
{ | ||
[TestFixture] | ||
public class BranchNamerTests | ||
{ | ||
[Test] | ||
public void TestWithSinglePackage() | ||
{ | ||
var packages = PackageUpdates.MakeUpdateSet("SomePackage") | ||
.InList(); | ||
|
||
var branchName = BranchNamer.MakeName(packages); | ||
|
||
Assert.That(branchName, Is.EqualTo("nukeeper-update-SomePackage-to-1.2.3")); | ||
} | ||
|
||
[Test] | ||
public void TestWithTwoPackages() | ||
{ | ||
var packages = new List<PackageUpdateSet> | ||
{ | ||
PackageUpdates.MakeUpdateSet("SomePackage"), | ||
PackageUpdates.MakeUpdateSet("OtherPackage") | ||
}; | ||
|
||
var branchName = BranchNamer.MakeName(packages); | ||
|
||
Assert.That(branchName, Is.EqualTo("nukeeper-update-2-packages-AA9F9828431C8BFB7A18D3D8F0CF229D")); | ||
} | ||
|
||
[Test] | ||
public void TestWithThreePackages() | ||
{ | ||
var packages = new List<PackageUpdateSet> | ||
{ | ||
PackageUpdates.MakeUpdateSet("SomePackage"), | ||
PackageUpdates.MakeUpdateSet("OtherPackage"), | ||
PackageUpdates.MakeUpdateSet("SomethingElse"), | ||
}; | ||
|
||
var branchName = BranchNamer.MakeName(packages); | ||
|
||
Assert.That(branchName, Is.EqualTo("nukeeper-update-3-packages-BBBB3BF2315D6111CFCBF6A4A7A29DD8")); | ||
} | ||
|
||
[Test] | ||
public void EquivalentInputs_HaveSameHash() | ||
{ | ||
var packages1 = new List<PackageUpdateSet> | ||
{ | ||
PackageUpdates.MakeUpdateSet("SomePackage", "2.3.4"), | ||
PackageUpdates.MakeUpdateSet("OtherPackage", "2.3.4") | ||
}; | ||
|
||
var packages2 = new List<PackageUpdateSet> | ||
{ | ||
PackageUpdates.MakeUpdateSet("SomePackage", "2.3.4"), | ||
PackageUpdates.MakeUpdateSet("OtherPackage", "2.3.4") | ||
}; | ||
|
||
var branchName1 = BranchNamer.MakeName(packages1); | ||
var branchName2 = BranchNamer.MakeName(packages2); | ||
|
||
Assert.That(branchName1, Is.EqualTo(branchName2)); | ||
} | ||
|
||
|
||
[Test] | ||
public void VersionChange_ChangesHash() | ||
{ | ||
var packages1 = new List<PackageUpdateSet> | ||
{ | ||
PackageUpdates.MakeUpdateSet("SomePackage", "2.3.4"), | ||
PackageUpdates.MakeUpdateSet("OtherPackage", "2.3.4") | ||
}; | ||
|
||
var packages2 = new List<PackageUpdateSet> | ||
{ | ||
PackageUpdates.MakeUpdateSet("SomePackage", "2.3.4"), | ||
PackageUpdates.MakeUpdateSet("OtherPackage", "2.3.5") | ||
}; | ||
|
||
var branchName1 = BranchNamer.MakeName(packages1); | ||
var branchName2 = BranchNamer.MakeName(packages2); | ||
|
||
Assert.That(branchName1, Is.Not.EqualTo(branchName2)); | ||
} | ||
|
||
[Test] | ||
public void NameChange_ChangesHash() | ||
{ | ||
var packages1 = new List<PackageUpdateSet> | ||
{ | ||
PackageUpdates.MakeUpdateSet("SomePackage", "2.3.4"), | ||
PackageUpdates.MakeUpdateSet("OtherPackage", "2.3.4") | ||
}; | ||
|
||
var packages2 = new List<PackageUpdateSet> | ||
{ | ||
PackageUpdates.MakeUpdateSet("ZomePackage", "2.3.4"), | ||
PackageUpdates.MakeUpdateSet("OtherPackage", "2.3.4") | ||
}; | ||
|
||
var branchName1 = BranchNamer.MakeName(packages1); | ||
var branchName2 = BranchNamer.MakeName(packages2); | ||
|
||
Assert.That(branchName1, Is.Not.EqualTo(branchName2)); | ||
} | ||
|
||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
using NUnit.Framework; | ||
using NuKeeper.Engine; | ||
|
||
namespace NuKeeper.Tests.Engine | ||
{ | ||
[TestFixture] | ||
public class HasherTests | ||
{ | ||
[Test] | ||
public void CanHash() | ||
{ | ||
var output = Hasher.Hash("test"); | ||
|
||
Assert.That(output, Is.EqualTo("098F6BCD4621D373CADE4E832627B4F6")); | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
using System.Globalization; | ||
using System.Security.Cryptography; | ||
using System.Text; | ||
|
||
namespace NuKeeper.Engine | ||
{ | ||
public static class Hasher | ||
{ | ||
#pragma warning disable CA5351 | ||
private static MD5 md5 = MD5.Create(); | ||
|
||
public static string Hash(string input) | ||
{ | ||
var inputBytes = Encoding.ASCII.GetBytes(input); | ||
var hash = md5.ComputeHash(inputBytes); | ||
return BytesToString(hash); | ||
} | ||
|
||
private static string BytesToString(byte[] bytes) | ||
{ | ||
var result = new StringBuilder(); | ||
|
||
foreach (var b in bytes) | ||
{ | ||
result.Append(b.ToString("X2", CultureInfo.InvariantCulture)); | ||
} | ||
|
||
return result.ToString(); | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters