public void WhenSeededWithStrings_ShouldMaintainBytesLength() { // Arrange var fixture = new Fixture(); var seed = fixture.Create <string[]>(); var expected = seed.Sum(s => s.Length) * sizeof(char); var algorithm = new Mock <IHashAlgorithm <int> >(MockBehavior.Strict); // Act var provider = new SeededHashingService <int>(algorithm.Object, seed); // Assert Assert.AreEqual(expected, provider.Seed.Count); algorithm.VerifyAll(); }
public void WhenSetToBytes_ShouldMaintainLength() { // Arrange var fixture = new Fixture(); var seed = fixture.Create <byte[]>(); var expected = seed.Length; var algorithm = new Mock <IHashAlgorithm <int> >(MockBehavior.Strict); var provider = new SeededHashingService <int>(algorithm.Object); // Act provider.SetSeed(seed); // Assert Assert.AreEqual(expected, provider.Seed.Count); algorithm.VerifyAll(); }
public void WhenGotten_ShouldMatchUnderlyingAlgorithm() { // Arrange var fixture = new Fixture(); var expected = fixture.Create <int>(); var algorithm = new Mock <IHashAlgorithm <int> >(MockBehavior.Strict); algorithm.Setup(m => m.HashSize).Returns(expected); var provider = new SeededHashingService <int>(algorithm.Object); // Act var actual = ((IHashAlgorithm)provider).HashSize; // Assert Assert.AreEqual(expected, actual); algorithm.VerifyAll(); }
public void WhenSeedNotGiven_ShouldMaintainValuesLength() { // Arrange var fixture = new Fixture(); var values = fixture.Create <byte[]>(); var expected = values.Length; var algorithm = new Mock <IHashAlgorithm <int> >(MockBehavior.Strict); algorithm.Setup(m => m.ComputeHash(It.Is <byte[]>(b => b != null && b.Length == expected))) .Returns(() => default(int)) .Verifiable(); var provider = new SeededHashingService <int>(algorithm.Object); // Act var actual = provider.ComputeHash(new byte[expected]); // Assert algorithm.VerifyAll(); }
public void WhenValuesGivenAsBytes_ShouldReturnFromAlgorithm() { // Arrange var fixture = new Fixture(); var values = fixture.Create <byte[]>(); var expected = fixture.Create <int>(); var algorithm = new Mock <IHashAlgorithm <int> >(MockBehavior.Strict); algorithm.Setup(m => m.ComputeHash(It.IsNotNull <byte[]>())) .Returns(() => expected) .Verifiable(); var provider = new SeededHashingService <int>(algorithm.Object); // Act var actual = provider.ComputeHash(values); // Assert Assert.AreEqual(expected, actual); algorithm.VerifyAll(); }