source: trunk/CrypPlugins/MD5Test/PresentableMd5Test.cs @ 854

Last change on this file since 854 was 854, checked in by pretzsch, 12 years ago

+ MD5 plugin: Added unit tests

File size: 1.5 KB
Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using NUnit.Framework;
6using System.IO;
7
8namespace Cryptool.MD5.Test
9{
10    [TestFixture]
11    class PresentableMd5Test
12    {
13        Random RNG;
14
15        [SetUp]
16        public void SetUp()
17        {
18            RNG = new Random();
19        }
20
21        [Test]
22        public void CompareResultsToBuiltinMd5()
23        {
24            const int TEST_RUNS = 20;
25
26            for (int i = 0; i < TEST_RUNS; i++)
27            {
28                byte[] testData = GenerateTestData();
29
30                System.Security.Cryptography.MD5 builtinMD5 = System.Security.Cryptography.MD5.Create();
31                byte[] builtinResult = builtinMD5.ComputeHash(testData);
32
33                PresentableMd5 presentableMd5 = new PresentableMd5(new MemoryStream(testData));
34                presentableMd5.NextStepUntilFinished();
35                byte[] presentableMd5Result = presentableMd5.HashValueBytes;
36
37                Assert.AreEqual(builtinResult, presentableMd5Result);
38            }
39        }
40
41        private byte[] GenerateTestData()
42        {
43            const int MIN_TEST_DATA_LENGTH = 1;
44            const int MAX_TEST_DATA_LENGTH = 1000;
45
46            int resultLength = MIN_TEST_DATA_LENGTH + RNG.Next(MAX_TEST_DATA_LENGTH - MIN_TEST_DATA_LENGTH) + 1;
47            byte[] result = new byte[resultLength];
48
49            RNG.NextBytes(result);
50
51            return result;
52        }
53    }
54}
55
Note: See TracBrowser for help on using the repository browser.