* roottypes.cs: Rename from tree.cs.
[mono.git] / mcs / class / corlib / Test / System.Security.Cryptography / DSASignatureDeformatterTest.cs
index 5e8115bd176bfde98436483d2e345a84fc8d27c2..069e348370a9b872461e49500ce97ef380b36910 100644 (file)
@@ -2,9 +2,29 @@
 // DSASignatureDeformatterTest.cs - NUnit Test Cases for DSASignatureDeformatter
 //
 // Author:
-//     Sebastien Pouliot (spouliot@motus.com)
+//     Sebastien Pouliot  <sebastien@ximian.com>
 //
 // (C) 2002 Motus Technologies Inc. (http://www.motus.com)
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
 using NUnit.Framework;
@@ -14,159 +34,145 @@ using System.Security.Cryptography;
 
 namespace MonoTests.System.Security.Cryptography {
 
-public class DSASignatureDeformatterTest : TestCase {
+[TestFixture]
+public class DSASignatureDeformatterTest {
        protected DSASignatureDeformatter def;
        protected static DSA dsa;
        protected static RSA rsa;
 
-       protected override void SetUp () 
+       static byte[] hash = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13 };
+       static byte[] sign = { 0x50, 0xd2, 0xb0, 0x8b, 0xcd, 0x5e, 0xb2, 0xc2, 0x35, 0x82, 0xd3, 0x76, 0x07, 0x79, 0xbb, 0x55, 0x98, 0x72, 0x43, 0xe8,
+                              0x74, 0xc9, 0x35, 0xf8, 0xc9, 0xbd, 0x69, 0x2f, 0x08, 0x34, 0xfa, 0x5a, 0x59, 0x23, 0x2a, 0x85, 0x7b, 0xa3, 0xb3, 0x82 };
+
+       [TestFixtureSetUp]
+       public void FixtureSetUp () 
        {
-               def = new DSASignatureDeformatter ();
                // key generation is VERY long so one time is enough
-               if (dsa == null)
-                       dsa = DSA.Create ();
-               if (rsa == null)
-                       rsa = RSA.Create ();
+               dsa = DSA.Create ();
+               rsa = RSA.Create ();
        }
 
-       protected override void TearDown () {}
+       [SetUp]
+       public void SetUp () 
+       {
+               def = new DSASignatureDeformatter ();
+       }
 
-       public void TestConstructors () 
+       [Test]
+       public void Constructor_Empty () 
        {
-               // empty constructor
                DSASignatureDeformatter def = new DSASignatureDeformatter ();
-               AssertNotNull ("DSASignatureDeformatter()", def);
-               // AsymmetricAlgorithm constructor (with null)
-               def = new DSASignatureDeformatter (null);
-               AssertNotNull ("DSASignatureDeformatter(null)", def);
-               // AsymmetricAlgorithm constructor (with DSA)
-               def = new DSASignatureDeformatter (dsa);
-               AssertNotNull ("DSASignatureDeformatter(dsa)", def);
-               // AsymmetricAlgorithm constructor (with RSA)
-               try {
-                       def = new DSASignatureDeformatter (rsa);
-                       Fail ("Expected InvalidCastException but got none");
-               }
-               catch (InvalidCastException) {
-                       // this is expected
-               }
-               catch (Exception e) {
-                       Fail ("Expected InvalidCastException but got " + e.ToString ());
-               }
-       }
-
-       // Method is documented as unused so...
-       public void TestSetHash () 
-       {
-               // null is ok
-               try {
-                       def.SetHashAlgorithm (null);
-               }
-               catch (ArgumentNullException) {
-                       // do nothing, this is what we expect
-               }
-               catch (Exception e) {
-                       Fail ("Expected ArgumentNullException but got " + e.ToString ());
-               }
-               // SHA1
-               try {
-                       def.SetHashAlgorithm ("SHA1");
-               }
-               catch (Exception e) {
-                       Fail ("Unexpected exception: " + e.ToString ());
-               }
-               // MD5 (bad)
-               try {
-                       def.SetHashAlgorithm ("MD5");
-               }
-               catch (CryptographicUnexpectedOperationException) {
-                       // do nothing, this is what we expect
-               }
-               catch (Exception e) {
-                       Fail ("Expected CryptographicUnexpectedOperationException but got " + e.ToString ());
-               }
-       }
-
-       public void TestSetKey () 
-       {
-               // here null is ok 
-               try {
-                       def.SetKey (null);
-               }
-               catch (Exception e) {
-                       Fail ("Unexpected exception: " + e.ToString ());
-               }
-               // RSA (bad)
-               try {
-                       def.SetKey (rsa);
-                       Fail ("Expected InvalidCastException but got none");
-               }
-               catch (InvalidCastException) {
-                       // do nothing, this is what we expect 
-               }
-               catch (Exception e) {
-                       Fail ("Expected InvalidCastException but got: " + e.ToString ());
-               }
-               // DSA
-               try {
-                       def.SetKey (dsa);
-               }
-               catch (Exception e) {
-                       Fail ("Unexpected exception: " + e.ToString ());
-               }
-       }
-
-       public void TestVerify () 
-       {
-               byte[] hash = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13 };
-               byte[] sign = { 0x50, 0xd2, 0xb0, 0x8b, 0xcd, 0x5e, 0xb2, 0xc2, 0x35, 0x82, 0xd3, 0x76, 0x07, 0x79, 0xbb, 0x55, 0x98, 0x72, 0x43, 0xe8,
-                                     0x74, 0xc9, 0x35, 0xf8, 0xc9, 0xbd, 0x69, 0x2f, 0x08, 0x34, 0xfa, 0x5a, 0x59, 0x23, 0x2a, 0x85, 0x7b, 0xa3, 0xb3, 0x82 };
-               bool ok = false;
-               try {
-                       ok = def.VerifySignature (hash, sign);
-               }
-               catch (CryptographicUnexpectedOperationException) {
-                       // do nothing, this is what we expect 
-               }
-               catch (Exception e) {
-                       Fail ("Expected CryptographicUnexpectedOperationException but got " + e.ToString ());
-               }
+               Assert.IsNotNull (def);
+       }
+
+       [Test]
+#if NET_2_0
+       [ExpectedException (typeof (ArgumentNullException))]
+#endif
+       public void Constructor_Null ()
+       {
+               DSASignatureDeformatter def = new DSASignatureDeformatter (null);
+               Assert.IsNotNull (def);
+       }
+
+       [Test]
+       public void Constructor_DSA ()
+       {
+               DSASignatureDeformatter def = new DSASignatureDeformatter (dsa);
+               Assert.IsNotNull (def);
+       }
+
+       [Test]
+       [ExpectedException (typeof (InvalidCastException))]
+       public void Constructor_RSA ()
+       {
+               DSASignatureDeformatter def = new DSASignatureDeformatter (rsa);
+       }
+
+       [Test]
+       [ExpectedException (typeof (ArgumentNullException))]
+       public void SetHash_Null ()
+       {
+               def.SetHashAlgorithm (null);
+       }
+
+       [Test]
+       public void SetHash_SHA1 ()
+       {
+               def.SetHashAlgorithm ("SHA1");
+       }
+
+       [Test]
+       [ExpectedException (typeof (CryptographicUnexpectedOperationException))]
+       public void SetHash_MD5 ()
+       {
+               def.SetHashAlgorithm ("MD5");
+       }
+
+       [Test]
+#if NET_2_0
+       [ExpectedException (typeof (ArgumentNullException))]
+#endif
+       public void SetKey_Null () 
+       {
+               def.SetKey (null);
+       }
+
+       [Test]
+       [ExpectedException (typeof (InvalidCastException))]
+       public void SetKey_RSA ()
+       {
+               def.SetKey (rsa);
+       }
+
+       [Test]
+       public void SetKey_DSA ()
+       {
+               def.SetKey (dsa);
+       }
+
+       [Test]
+       [ExpectedException (typeof (CryptographicUnexpectedOperationException))]
+       public void Verify_NoKeyPair () 
+       {
+               def.VerifySignature (hash, sign);
+       }
+
+       [Test]
+       [ExpectedException (typeof (ArgumentNullException))]
+       public void Verify_NullSignature ()
+       {
+               dsa.ImportParameters (AllTests.GetKey (false));
+               def.SetKey (dsa);
+               def.VerifySignature (hash, null);
+       }
 
+       [Test]
+       [ExpectedException (typeof (ArgumentNullException))]
+       public void Verify_NullHash ()
+       {
                dsa.ImportParameters (AllTests.GetKey (false));
                def.SetKey (dsa);
+               byte[] s = null; // overloaded method
+               def.VerifySignature (s, sign);
+       }
 
-               // missing signature
-               try {
-                       ok = def.VerifySignature (hash, null);
-                       Fail ("Expected ArgumentNullException but got none");
-               }
-               catch (ArgumentNullException) {
-                       // do nothing, this is what we expect 
-               }
-               catch (Exception e) {
-                       Fail ("Expected ArgumentNullException but got " + e.ToString ());
-               }
-
-               // missing hash
-               try {
-                       byte[] s = null; // overloaded method
-                       ok = def.VerifySignature (s, sign);
-                       Fail ("Expected ArgumentNullException but got none");
-               }
-               catch (ArgumentNullException) {
-                       // do nothing, this is what we expect 
-               }
-               catch (Exception e) {
-                       Fail ("Expected ArgumentNullException but got " + e.ToString ());
-               }
-
-               ok = def.VerifySignature (hash, sign);
-               Assert ("verified signature", ok);
+       [Test]
+       public void Verify ()
+       {
+               dsa.ImportParameters (AllTests.GetKey (false));
+               def.SetKey (dsa);
+               Assert.IsTrue (def.VerifySignature (hash, sign));
+       }
 
+       [Test]
+       public void Verify_Bad ()
+       {
+               dsa.ImportParameters (AllTests.GetKey (false));
+               def.SetKey (dsa);
                byte[] badSign = { 0x49, 0xd2, 0xb0, 0x8b, 0xcd, 0x5e, 0xb2, 0xc2, 0x35, 0x82, 0xd3, 0x76, 0x07, 0x79, 0xbb, 0x55, 0x98, 0x72, 0x43, 0xe8,
-                                        0x74, 0xc9, 0x35, 0xf8, 0xc9, 0xbd, 0x69, 0x2f, 0x08, 0x34, 0xfa, 0x5a, 0x59, 0x23, 0x2a, 0x85, 0x7b, 0xa3, 0xb3, 0x82 };
-               ok = def.VerifySignature (hash, badSign);
-               Assert ("didn't verified bad signature", !ok);
+                                  0x74, 0xc9, 0x35, 0xf8, 0xc9, 0xbd, 0x69, 0x2f, 0x08, 0x34, 0xfa, 0x5a, 0x59, 0x23, 0x2a, 0x85, 0x7b, 0xa3, 0xb3, 0x82 };
+               Assert.IsFalse (def.VerifySignature (hash, badSign));
        }
 }