Skip to content

Commit 76d10e0

Browse files
feature/v2.1
- Added async methods for Hash and Hmac types. - Added async tests and tests for identical hash codes. - Updated version to 2.1.0
1 parent 70e5522 commit 76d10e0

34 files changed

+1470
-14
lines changed

OnixLabs.Core.UnitTests/Base16Tests.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,21 @@ namespace OnixLabs.Core.UnitTests
1919
{
2020
public sealed class Base16Tests
2121
{
22+
[Fact(DisplayName = "Identical Base16 values produce identical hash codes.")]
23+
public void IdenticalBase16ValuesProduceIdenticalHashCodes()
24+
{
25+
// Arrange
26+
Base16 a = Base16.FromString("abcdefghijklmnopqrstuvwxyz");
27+
Base16 b = Base16.FromString("abcdefghijklmnopqrstuvwxyz");
28+
29+
// Act
30+
int hashCodeA = a.GetHashCode();
31+
int hashCodeB = b.GetHashCode();
32+
33+
// Assert
34+
Assert.Equal(hashCodeA, hashCodeB);
35+
}
36+
2237
[Theory(DisplayName = "Base16_FromString should produce the expected Base-16 value.")]
2338
[InlineData("31323334353637383930", "1234567890")]
2439
[InlineData("4142434445464748494a4b4c4d4e4f505152535455565758595a", "ABCDEFGHIJKLMNOPQRSTUVWXYZ")]

OnixLabs.Core.UnitTests/Base32Base32HexAlphabetTests.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,21 @@ namespace OnixLabs.Core.UnitTests
1919
{
2020
public sealed class Base32Base32HexAlphabetTests
2121
{
22+
[Fact(DisplayName = "Identical Base32 values produce identical hash codes.")]
23+
public void IdenticalBase32ValuesProduceIdenticalHashCodes()
24+
{
25+
// Arrange
26+
Base32 a = Base32.FromString("abcdefghijklmnopqrstuvwxyz", Base32Alphabet.Base32Hex);
27+
Base32 b = Base32.FromString("abcdefghijklmnopqrstuvwxyz", Base32Alphabet.Base32Hex);
28+
29+
// Act
30+
int hashCodeA = a.GetHashCode();
31+
int hashCodeB = b.GetHashCode();
32+
33+
// Assert
34+
Assert.Equal(hashCodeA, hashCodeB);
35+
}
36+
2237
[Theory(DisplayName = "Base32_FromString without padding should produce the expected Base-32 value.")]
2338
[InlineData("64P36D1L6ORJGE9G", "1234567890")]
2439
[InlineData("85146H258P3KGIAA9D64QJIFA18L4KQKALB5EM2PB8======", "ABCDEFGHIJKLMNOPQRSTUVWXYZ")]

OnixLabs.Core.UnitTests/Base32CrockfordAlphabetTests.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,21 @@ namespace OnixLabs.Core.UnitTests
1919
{
2020
public sealed class Base32CrockfordAlphabetTests
2121
{
22+
[Fact(DisplayName = "Identical Base32 values produce identical hash codes.")]
23+
public void IdenticalBase32ValuesProduceIdenticalHashCodes()
24+
{
25+
// Arrange
26+
Base32 a = Base32.FromString("abcdefghijklmnopqrstuvwxyz", Base32Alphabet.Crockford);
27+
Base32 b = Base32.FromString("abcdefghijklmnopqrstuvwxyz", Base32Alphabet.Crockford);
28+
29+
// Act
30+
int hashCodeA = a.GetHashCode();
31+
int hashCodeB = b.GetHashCode();
32+
33+
// Assert
34+
Assert.Equal(hashCodeA, hashCodeB);
35+
}
36+
2237
[Theory(DisplayName = "Base32_FromString without padding should produce the expected Base-32 value.")]
2338
[InlineData("64S36D1N6RVKGE9G", "1234567890")]
2439
[InlineData("85146H258S3MGJAA9D64TKJFA18N4MTMANB5EP2SB8======", "ABCDEFGHIJKLMNOPQRSTUVWXYZ")]

OnixLabs.Core.UnitTests/Base32DefaultAlphabetTests.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,21 @@ namespace OnixLabs.Core.UnitTests
1919
{
2020
public sealed class Base32DefaultAlphabetTests
2121
{
22+
[Fact(DisplayName = "Identical Base32 values produce identical hash codes.")]
23+
public void IdenticalBase32ValuesProduceIdenticalHashCodes()
24+
{
25+
// Arrange
26+
Base32 a = Base32.FromString("abcdefghijklmnopqrstuvwxyz", Base32Alphabet.Default);
27+
Base32 b = Base32.FromString("abcdefghijklmnopqrstuvwxyz", Base32Alphabet.Default);
28+
29+
// Act
30+
int hashCodeA = a.GetHashCode();
31+
int hashCodeB = b.GetHashCode();
32+
33+
// Assert
34+
Assert.Equal(hashCodeA, hashCodeB);
35+
}
36+
2237
[Theory(DisplayName = "Base32_FromString without padding should produce the expected Base-32 value.")]
2338
[InlineData("GEZDGNBVGY3TQOJQ", "1234567890")]
2439
[InlineData("IFBEGRCFIZDUQSKKJNGE2TSPKBIVEU2UKVLFOWCZLI======", "ABCDEFGHIJKLMNOPQRSTUVWXYZ")]

OnixLabs.Core.UnitTests/Base32ZBase32AlphabetTests.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,21 @@ namespace OnixLabs.Core.UnitTests
1919
{
2020
public sealed class Base32ZBase32AlphabetTests
2121
{
22+
[Fact(DisplayName = "Identical Base32 values produce identical hash codes.")]
23+
public void IdenticalBase32ValuesProduceIdenticalHashCodes()
24+
{
25+
// Arrange
26+
Base32 a = Base32.FromString("abcdefghijklmnopqrstuvwxyz", Base32Alphabet.ZBase32);
27+
Base32 b = Base32.FromString("abcdefghijklmnopqrstuvwxyz", Base32Alphabet.ZBase32);
28+
29+
// Act
30+
int hashCodeA = a.GetHashCode();
31+
int hashCodeB = b.GetHashCode();
32+
33+
// Assert
34+
Assert.Equal(hashCodeA, hashCodeB);
35+
}
36+
2237
[Theory(DisplayName = "Base32_FromString without padding should produce the expected Base-32 value.")]
2338
[InlineData("gr3dgpbiga5uoqjo", "1234567890")]
2439
[InlineData("efbrgtnfe3dwo1kkjpgr4u1xkbeirw4wkimfqsn3me======", "ABCDEFGHIJKLMNOPQRSTUVWXYZ")]

OnixLabs.Core.UnitTests/Base58DefaultAlphabetTests.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,21 @@ namespace OnixLabs.Core.UnitTests
1919
{
2020
public sealed class Base58DefaultAlphabetTests
2121
{
22+
[Fact(DisplayName = "Identical Base58 values produce identical hash codes.")]
23+
public void IdenticalBase58ValuesProduceIdenticalHashCodes()
24+
{
25+
// Arrange
26+
Base58 a = Base58.FromString("abcdefghijklmnopqrstuvwxyz", Base58Alphabet.Default);
27+
Base58 b = Base58.FromString("abcdefghijklmnopqrstuvwxyz", Base58Alphabet.Default);
28+
29+
// Act
30+
int hashCodeA = a.GetHashCode();
31+
int hashCodeB = b.GetHashCode();
32+
33+
// Assert
34+
Assert.Equal(hashCodeA, hashCodeB);
35+
}
36+
2237
[Theory(DisplayName = "Base58_FromString should produce the expected Base-58 value.")]
2338
[InlineData("3mJr7AoUCHxNqd", "1234567890")]
2439
[InlineData("2zuFXTJSTRK6ESktqhM2QDBkCnH1U46CnxaD", "ABCDEFGHIJKLMNOPQRSTUVWXYZ")]

OnixLabs.Core.UnitTests/Base58FlickrAlphabetTests.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,21 @@ namespace OnixLabs.Core.UnitTests
1919
{
2020
public sealed class Base58FlickrAlphabetTests
2121
{
22+
[Fact(DisplayName = "Identical Base58 values produce identical hash codes.")]
23+
public void IdenticalBase58ValuesProduceIdenticalHashCodes()
24+
{
25+
// Arrange
26+
Base58 a = Base58.FromString("abcdefghijklmnopqrstuvwxyz", Base58Alphabet.Flickr);
27+
Base58 b = Base58.FromString("abcdefghijklmnopqrstuvwxyz", Base58Alphabet.Flickr);
28+
29+
// Act
30+
int hashCodeA = a.GetHashCode();
31+
int hashCodeB = b.GetHashCode();
32+
33+
// Assert
34+
Assert.Equal(hashCodeA, hashCodeB);
35+
}
36+
2237
[Theory(DisplayName = "Base58_FromString should produce the expected Base-58 value.")]
2338
[InlineData("3LiR7aNtchXnQC", "1234567890")]
2439
[InlineData("2ZUfwsirsqj6erKTQGm2pdbKcMh1t46cMXzd", "ABCDEFGHIJKLMNOPQRSTUVWXYZ")]

OnixLabs.Core.UnitTests/Base58RippleAlphabetTests.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,21 @@ namespace OnixLabs.Core.UnitTests
1919
{
2020
public sealed class Base58RippleAlphabetTests
2121
{
22+
[Fact(DisplayName = "Identical Base58 values produce identical hash codes.")]
23+
public void IdenticalBase58ValuesProduceIdenticalHashCodes()
24+
{
25+
// Arrange
26+
Base58 a = Base58.FromString("abcdefghijklmnopqrstuvwxyz", Base58Alphabet.Ripple);
27+
Base58 b = Base58.FromString("abcdefghijklmnopqrstuvwxyz", Base58Alphabet.Ripple);
28+
29+
// Act
30+
int hashCodeA = a.GetHashCode();
31+
int hashCodeB = b.GetHashCode();
32+
33+
// Assert
34+
Assert.Equal(hashCodeA, hashCodeB);
35+
}
36+
2237
[Theory(DisplayName = "Base58_FromString should produce the expected Base-58 value.")]
2338
[InlineData("smJifwo7UHx4qd", "1234567890")]
2439
[InlineData("pzuEXTJSTRKaNSktq6MpQDBkU8Hr7haU8x2D", "ABCDEFGHIJKLMNOPQRSTUVWXYZ")]

OnixLabs.Core.UnitTests/Base64Tests.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,21 @@ namespace OnixLabs.Core.UnitTests
1919
{
2020
public sealed class Base64Tests
2121
{
22+
[Fact(DisplayName = "Identical Base64 values produce identical hash codes.")]
23+
public void IdenticalBase64ValuesProduceIdenticalHashCodes()
24+
{
25+
// Arrange
26+
Base64 a = Base64.FromString("abcdefghijklmnopqrstuvwxyz");
27+
Base64 b = Base64.FromString("abcdefghijklmnopqrstuvwxyz");
28+
29+
// Act
30+
int hashCodeA = a.GetHashCode();
31+
int hashCodeB = b.GetHashCode();
32+
33+
// Assert
34+
Assert.Equal(hashCodeA, hashCodeB);
35+
}
36+
2237
[Theory(DisplayName = "Base64_FromString should produce the expected Base-64 value.")]
2338
[InlineData("MTIzNDU2Nzg5MA==", "1234567890")]
2439
[InlineData("QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVo=", "ABCDEFGHIJKLMNOPQRSTUVWXYZ")]

OnixLabs.Core/OnixLabs.Core.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@
88
<Title>OnixLabs.Core</Title>
99
<Authors>ONIXLabs</Authors>
1010
<Description>ONIXLabs Core API for .NET</Description>
11-
<AssemblyVersion>2.0.0</AssemblyVersion>
11+
<AssemblyVersion>2.1.0</AssemblyVersion>
1212
<NeutralLanguage>en</NeutralLanguage>
1313
<Copyright>Copyright © ONIXLabs 2020-2021</Copyright>
1414
<RepositoryUrl>https://github.com/onix-labs/onixlabs-dotnet</RepositoryUrl>
15-
<PackageVersion>2.0.0</PackageVersion>
15+
<PackageVersion>2.1.0</PackageVersion>
1616
</PropertyGroup>
1717

1818
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">

0 commit comments

Comments
 (0)