File: RNGCryptoServiceProviderTest.cs

package info (click to toggle)
mono 1.2.2.1-1
  • links: PTS
  • area: main
  • in suites: etch-m68k
  • size: 142,728 kB
  • ctags: 256,408
  • sloc: cs: 1,495,736; ansic: 249,442; sh: 18,304; xml: 12,463; makefile: 5,046; perl: 1,248; asm: 635; yacc: 285; sql: 7
file content (101 lines) | stat: -rw-r--r-- 2,191 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
//
// TestSuite.System.Security.Cryptography.RNGCryptoServiceProviderTest.cs
//
// Authors:
//      Mark Crichton (crichton@gimp.org)
//	Sebastien Pouliot  (sebastien@ximian.com)
//
// Copyright (C) 2004 Novell (http://www.novell.com)
//

using System;
using System.Security.Cryptography;

using NUnit.Framework;

namespace MonoTests.System.Security.Cryptography {

	[TestFixture]
	public class RNGCryptoServiceProviderTest : Assertion {

		private RNGCryptoServiceProvider _algo;
		
		[SetUp]
		public void SetUp () 
		{
			_algo = new RNGCryptoServiceProvider ();
		}

		[Test]
		public void ConstructorByteArray () 
		{
			byte[] array = new byte [16];
			byte[] seed = (byte[]) array.Clone ();
			RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider (seed);
			AssertEquals ("Seed", BitConverter.ToString (array), BitConverter.ToString (seed));
		}

		[Test]
		public void ConstructorByteArray_Null () 
		{
			byte[] array = null;
			RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider (array);
		}

		[Test]
		public void ConstructorCsp_Null () 
		{
			CspParameters csp = null;
			RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider (csp);
		}

		[Test]
		public void ConstructorString () 
		{
			string s = "Mono seed";
			RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider (s);
			AssertEquals ("Seed", "Mono seed", s);
		}

		[Test]
		public void ConstructorString_Null () 
		{
			string s = null;
			RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider (s);
		}

		[Test]
		public void GetBytes () 
		{
			byte[] random = new byte [25];
			// The C code doesn't throw an exception yet.
			_algo.GetBytes (random);
		}

		[Test]
		public void GetNonZeroBytes () 
		{
			byte[] random = new byte [25];
			// This one we can check...
			_algo.GetNonZeroBytes (random);
			
			foreach (Byte rnd_byte in random) {
				Assert("Properties (2)", rnd_byte != 0);
			}
		}

		[Test]
		[ExpectedException (typeof (ArgumentNullException))]
		public void GetBytesNull () 
		{
			_algo.GetBytes (null);
		}

		[Test]
		[ExpectedException (typeof (ArgumentNullException))]
		public void GetNonZeroBytesNull () 
		{
			_algo.GetNonZeroBytes (null);
		}
	}
}