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."); }