Example #1
0
        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();
        }
Example #2
0
        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();
        }
Example #3
0
        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();
        }
Example #4
0
        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();
        }
Example #5
0
        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();
        }