* roottypes.cs: Rename from tree.cs.
[mono.git] / mcs / class / corlib / Test / System.Security.Cryptography / RNGCryptoServiceProviderTest.cs
index 2eb20cb9077c5fb5027068b041c0f507fbcab086..b27ea6074181b9cd2a2c2b2240ce9dd205e77124 100644 (file)
-//\r
-// TestSuite.System.Security.Cryptography.RNGCryptoServiceProviderTest.cs\r
-//\r
-// Author:\r
-//      Mark Crichton (crichton@gimp.org)\r
-//\r
-\r
-\r
-using System;\r
-using System.Security.Cryptography;\r
-\r
-using NUnit.Framework;\r
-\r
-namespace MonoTests.System.Security.Cryptography {\r
-\r
-       public class RNGCryptoServiceProviderTest : TestCase {\r
-               private RNGCryptoServiceProvider _algo;\r
-               \r
-               public RNGCryptoServiceProviderTest(String name) : base(name) {\r
-                       _algo = null;\r
-               }\r
-               \r
-               public static ITest Suite {\r
-                       get {\r
-                               return new TestSuite(typeof(RNGCryptoServiceProviderTest));\r
-                       }\r
-               }\r
-\r
-               protected override void SetUp() {\r
-                       _algo = new RNGCryptoServiceProvider();\r
-               }\r
-\r
-               private void SetDefaultData() {\r
-               }\r
-               \r
-               public void TestProperties() {\r
-                       Assert("Properties (1)", _algo != null);\r
-                       \r
-                       byte[] random = new Byte[25];\r
-\r
-                       // The C code doesn't throw an exception yet.\r
-                       _algo.GetBytes(random);\r
-                       \r
-                       // This one we can check...\r
-                       _algo.GetNonZeroBytes(random);\r
-                       \r
-                       foreach (Byte rnd_byte in random) {\r
-                               Assert("Properties (2)", rnd_byte != 0);\r
-                       }\r
-               }\r
-       }\r
-}\r
+//
+// 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);
+               }
+       }
+}