public void TestBasicFunctionality() { var certs = SecureMimeTestsBase.LoadPkcs12CertificateChain(GetTestDataPath("smime.pfx"), "no.secret"); var chain = new X509CertificateChain(); Assert.IsFalse(chain.IsReadOnly); Assert.AreEqual(0, chain.Count, "Initial count"); chain.Add(certs[2]); Assert.AreEqual(1, chain.Count); Assert.AreEqual(certs[2], chain[0]); chain.Insert(0, certs[0]); chain.Insert(1, certs[1]); Assert.AreEqual(3, chain.Count); Assert.AreEqual(certs[0], chain[0]); Assert.AreEqual(certs[1], chain[1]); Assert.AreEqual(certs[2], chain[2]); Assert.IsTrue(chain.Contains(certs[1]), "Contains"); Assert.AreEqual(1, chain.IndexOf(certs[1]), "IndexOf"); var array = new X509Certificate[chain.Count]; chain.CopyTo(array, 0); chain.Clear(); Assert.AreEqual(0, chain.Count); foreach (var cert in array) { chain.Add(cert); } Assert.AreEqual(array.Length, chain.Count); Assert.IsTrue(chain.Remove(certs[2])); Assert.AreEqual(2, chain.Count); Assert.AreEqual(certs[0], chain[0]); Assert.AreEqual(certs[1], chain[1]); chain.RemoveAt(0); Assert.AreEqual(1, chain.Count); Assert.AreEqual(certs[1], chain[0]); chain[0] = certs[2]; Assert.AreEqual(1, chain.Count); Assert.AreEqual(certs[2], chain[0]); }
public void TestAddRemoveRange() { var certificates = new List <X509Certificate> (); var chain = new X509CertificateChain(); foreach (var authority in CertificateAuthorities) { var certificate = SecureMimeTestsBase.LoadCertificate(GetTestDataPath(authority)); certificates.Add(certificate); } Assert.Throws <ArgumentNullException> (() => chain.AddRange(null)); chain.AddRange(certificates); Assert.AreEqual(CertificateAuthorities.Length, chain.Count, "Unexpected number of certificates after AddRange."); int index = 0; foreach (var certificate in chain) { Assert.AreEqual(certificates[index++], certificate, "GetEnumerator"); } index = 0; foreach (X509Certificate certificate in ((IEnumerable)chain)) { Assert.AreEqual(certificates[index++], certificate, "GetEnumerator"); } Assert.Throws <ArgumentNullException> (() => chain.RemoveRange(null)); chain.RemoveRange(certificates); Assert.AreEqual(0, chain.Count, "Unexpected number of certificates after RemoveRange."); }
public SqliteCertificateDatabaseTests() { dataDir = Path.Combine("..", "..", "TestData", "smime"); var path = Path.Combine(dataDir, "smime.pfx"); if (File.Exists("sqlite.db")) { File.Delete("sqlite.db"); } chain = SecureMimeTestsBase.LoadPkcs12CertificateChain(path, "no.secret"); using (var ctx = new DefaultSecureMimeContext("sqlite.db", "no.secret")) { foreach (var filename in StartComCertificates) { path = Path.Combine(dataDir, filename); using (var stream = File.OpenRead(path)) ctx.Import(stream, true); } path = Path.Combine(dataDir, "smime.pfx"); ctx.Import(path, "no.secret"); } }