private int TestConstructs()
 {
     CertificateStore cs = null;
     // empty constructor
     try {
         cs = new CertificateStore();
         if (cs.EnumCertificates().Length != 0)
             AddError("CS-TC-1");
     } catch {
         AddError("CS-TC-2");
     }
     // string constructor
     try {
         cs = new CertificateStore((string)null);
         AddError("CS-TC-3");
     } catch (ArgumentNullException) {
     } catch {
         AddError("CS-TC-4");
     }
     try {
         cs = new CertificateStore("ROOT");
         if (cs.EnumCertificates().Length == 0)
             AddError("CS-TC-5"); // it is _very_ unlikely that the ROOT store is empty
     } catch {
         AddError("CS-TC-6");
     }
     // CertificateStore constructor
     try {
         cs = new CertificateStore(cs);
         if (cs.EnumCertificates().Length == 0)
             AddError("CS-TC-7"); //copy of the ROOT store
     } catch {
         AddError("CS-TC-8");
     }
     try {
         cs = new CertificateStore((CertificateStore)null);
         AddError("CS-TC-9");
     } catch (ArgumentNullException) {
     } catch {
         AddError("CS-TC-10");
     }
     // IntPtr constructor
     try {
         cs = new CertificateStore(IntPtr.Zero);
         AddError("CS-TC-11");
     } catch (ArgumentException) {
     } catch {
         AddError("CS-TC-12");
     }
     try {
         cs = new CertificateStore(IntPtr.Zero, true);
         AddError("CS-TC-13");
     } catch (ArgumentException) {
     } catch {
         AddError("CS-TC-14");
     }
     try {
         cs = new CertificateStore(new CertificateStore().Handle, true);
     } catch {
         AddError("CS-TC-15");
     }
     return 15;
 }
 private int TestMethods()
 {
     Certificate c = null;
     CertificateStore cs = null;
     try {
         c = CertificateStore.CreateFromCerFile(@"certs\server.base64.cer").FindCertificateByUsage(new string[] {"1.3.6.1.5.5.7.3.1"});
         cs = new CertificateStore();
     } catch {
         AddError("CS-TM-0");
         return 1;
     }
     // AddCertificate + EnumCertificates
     try {
         cs.AddCertificate(null);
         AddError("CS-TM-1");
     } catch (ArgumentNullException) {
     } catch {
         AddError("CS-TM-2");
     }
     try {
         cs.AddCertificate(c);
         if (cs.EnumCertificates().Length != 1)
             AddError("CS-TM-3");
         else
             if (!cs.EnumCertificates()[0].Equals(c))
                 AddError("CS-TM-4");
     } catch {
         AddError("CS-TM-5");
     }
     // DeleteCertificate + EnumCertificates
     try {
         cs.DeleteCertificate(null);
         AddError("CS-TM-6");
     } catch (ArgumentNullException) {
     } catch {
         AddError("CS-TM-7");
     }
     try {
         cs.DeleteCertificate(c);
         if (cs.EnumCertificates().Length != 0)
             AddError("CS-TM-8");
     } catch {
         AddError("CS-TM-9");
     }
     // CreateFromPfxFile
     try {
         cs.AddCertificate(c);
         CertificateStore cs2 = CertificateStore.CreateFromPfxFile(cs.ToPfxBuffer("test", true), "test");
         if (cs2.EnumCertificates().Length != 1)
             AddError("CS-TM-10");
         if (!c.Equals(cs2.EnumCertificates()[0]))
             AddError("CS-TM-11");
     } catch {
         AddError("CS-TM-12");
     }
     // FindCertificate and the CreateFrom*File methods are
     // already tested in other blackbox classes
     return 12;
 }