public void TestCalculateAsciiFile()
        {
            var calculator     = new FileHashCalculator();
            var filePathInput  = "tux.txt";
            var hashTypeInputs = new[]
            {
                HashType.MD5,
                HashType.SHA1,
                HashType.SHA256,
                HashType.SHA512,
            };
            var expectedHasheStrings = new[]
            {
                "5ab6e4b98bc7fb716fc07ed98fedf802",
                "2970eb1fef549b6a4039e7fd2336ba16b18bcbd2",
                "ec2dc675422c8eeb1eef26e7c67c3d74713e947bda7378896d8e3cf4dc5f0161",
                "b6e7a9b249cdfecdd037c1615dbfdfa35cd0e54e08cd27ed88fceb97296dfa1c512ecf636364f0c9ed6a49cee3574ea91327efc5969bd918175441777e8bc07f",
            };

            for (var i = 0; i < hashTypeInputs.Length; i++)
            {
                var hashTypeInput      = hashTypeInputs[i];
                var actualHash         = calculator.Calculate(filePathInput, hashTypeInput);
                var expectedHashString = expectedHasheStrings[i];
                Assert.Equal(expectedHashString, actualHash.ComputedHash.ToHashString());
            }
        }
        public void TestCalculateBinaryFile()
        {
            var calculator     = new FileHashCalculator();
            var filePathInput  = "tux.png";
            var hashTypeInputs = new[]
            {
                HashType.MD5,
                HashType.SHA1,
                HashType.SHA256,
                HashType.SHA512,
            };
            var expectedHasheStrings = new[]
            {
                "bede490bfe83a2847e1503b3eb5085c7",
                "be598b6d3e3f4f4232abbdc1e90ff900a0c3ccd2",
                "8fc6897c39e60c0d246d992c9b7057ac483f37a7b0d85b69bdc42c652e9a60ee",
                "7b9f4e15ee56cdcf075a736ffb2766e44573601fbbdc485a9bf4a710ee49b41d5c57367ebbf9caecf995404e2f14e98a61986488a0981433ea228d60c86a5a09",
            };

            for (var i = 0; i < hashTypeInputs.Length; i++)
            {
                var hashTypeInput      = hashTypeInputs[i];
                var actualHash         = calculator.Calculate(filePathInput, hashTypeInput);
                var expectedHashString = expectedHasheStrings[i];
                Assert.Equal(expectedHashString, actualHash.ComputedHash.ToHashString());
            }
        }
示例#3
0
            public void Should_Throw_If_File_Path_Is_Null()
            {
                // Given
                var fileSystem = Substitute.For <IFileSystem>();
                var calculator = new FileHashCalculator(fileSystem);

                // When
                var result = Record.Exception(() => calculator.Calculate(null, HashAlgorithm.MD5));

                // Then
                Assert.IsArgumentNullException(result, "filePath");
            }
示例#4
0
            public void Should_Throw_If_File_Does_Not_Exist()
            {
                // Given
                var fileSystem = Substitute.For <IFileSystem>();
                var file       = Substitute.For <IFile>();

                file.Exists.Returns(false);
                fileSystem.GetFile(Arg.Any <FilePath>()).Returns(file);

                var calculator = new FileHashCalculator(fileSystem);

                // When
                var result = Record.Exception(() => calculator.Calculate("./non-existent-path", HashAlgorithm.MD5));

                // Then
                Assert.IsExceptionWithMessage <CakeException>(result, "File 'non-existent-path' does not exist.");
            }