public void RoundTripHashEmptyArrayTest()
        {
            IHasherTasks target = GetHasher();

            var data = new byte[0];
            var hash = target.Hash(data);

            Assert.IsNotNull(hash);
            Assert.IsTrue(hash.Length == 40);
            target.VerifyHash(data, hash);
        }
        public void RoundTripHashTextTest()
        {
            IHasherTasks target   = GetHasher();
            var          testText = "test text";

            var cryptoResult = target.HashText(testText);

            Assert.IsNotNull(cryptoResult);
            Assert.IsTrue(cryptoResult.Length == 40);

            target.VerifyTextHash(testText, cryptoResult);
        }
        public void RoundTripNullHashTest()
        {
            IHasherTasks target = GetHasher();

            byte[] data = null;

            var hash = target.Hash(data);

            Assert.IsNull(hash);

            target.VerifyHash(data, hash);
        }
        public void RoundTripHashNull2Test()
        {
            IHasherTasks target = GetHasher();
            var          data   = new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };

            var hash = target.Hash(data);

            Assert.IsNotNull(hash);
            Assert.IsTrue(hash.Length == 40);

            target.VerifyHash(data, null);
        }
        public void RoundTripHashStreamTest()
        {
            IHasherTasks target = GetHasher();
            var          data   = new MemoryStream(new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 });

            var hash = target.Hash(data);

            Assert.IsNotNull(hash);
            Assert.IsTrue(hash.Length == 40);

            data.Seek(0, SeekOrigin.Begin);
            target.VerifyHash(data, hash);
        }
        public void RoundTripInvalidHashTest()
        {
            IHasherTasks target = GetHasher();
            var          data   = new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };

            var hash = target.Hash(data);

            Assert.IsNotNull(hash);
            Assert.IsTrue(hash.Length == 40);

            unchecked { hash[5]--; };

            target.VerifyHash(data, hash);
        }
        public void RoundTripInvalidHashTextTest()
        {
            IHasherTasks target   = GetHasher();
            var          testText = "test text";

            var cryptoResult = target.HashText(testText);

            Assert.IsNotNull(cryptoResult);
            Assert.IsTrue(cryptoResult.Length > testText.Length * 2);

            cryptoResult[5] = (byte)~(cryptoResult[5]);

            target.VerifyTextHash(testText, cryptoResult);
        }
        public void HashNullTextHasherTest()
        {
            IHasherTasks target = GetHasher();

            Assert.IsNull(target.HashText(null));
        }