**** Merged from MCS ****
[mono-project.git] / mcs / class / System.Security / Test / System.Security.Cryptography.X509Certificates / X509StoreTest.cs
blob63da817ba547125e4ef022e5502491c975f81df4
1 //
2 // X509StoreTest.cs - NUnit tests for X509Store
3 //
4 // Author:
5 // Sebastien Pouliot (spouliot@motus.com)
6 //
7 // (C) 2003 Motus Technologies Inc. (http://www.motus.com)
8 //
10 #if NET_2_0
12 using NUnit.Framework;
14 using System;
15 using System.Collections;
16 using System.Security.Cryptography;
17 using System.Security.Cryptography.X509Certificates;
19 namespace MonoTests.System.Security.Cryptography.X509Certificates {
21 [TestFixture]
22 public class X509StoreTest : Assertion {
24 [Test]
25 public void ConstructorEmpty ()
27 X509Store xs = new X509Store ();
28 // default properties
29 AssertEquals ("Location", StoreLocation.CurrentUser, xs.Location);
30 AssertEquals ("Name", "MY", xs.Name);
31 AssertNotNull ("Certificates", xs.Certificates);
35 [Test]
36 public void ConstructorStoreLocationCurrentUser ()
38 X509Store xs = new X509Store (StoreLocation.CurrentUser);
39 // default properties
40 AssertEquals ("Location", StoreLocation.CurrentUser, xs.Location);
41 AssertEquals ("Name", "MY", xs.Name);
42 AssertNotNull ("Certificates", xs.Certificates);
45 [Test]
46 public void ConstructorStoreLocationLocalMachine ()
48 X509Store xs = new X509Store (StoreLocation.LocalMachine);
49 // default properties
50 AssertEquals ("Location", StoreLocation.LocalMachine, xs.Location);
51 AssertEquals ("Name", "MY", xs.Name);
52 AssertNotNull ("Certificates", xs.Certificates);
56 [Test]
57 public void ConstructorStoreStringAddressBook ()
59 X509Store xs = new X509Store ("AddressBook");
60 // default properties
61 AssertEquals ("Location", StoreLocation.CurrentUser, xs.Location);
62 AssertEquals ("Name", "AddressBook", xs.Name);
63 AssertNotNull ("Certificates", xs.Certificates);
66 [Test]
67 public void ConstructorStoreStringAuthRoot ()
69 X509Store xs = new X509Store ("AuthRoot");
70 // default properties
71 AssertEquals ("Location", StoreLocation.CurrentUser, xs.Location);
72 AssertEquals ("Name", "AuthRoot", xs.Name);
73 AssertNotNull ("Certificates", xs.Certificates);
76 [Test]
77 public void ConstructorStoreStringCertificateAuthority ()
79 X509Store xs = new X509Store ("CA");
80 // default properties
81 AssertEquals ("Location", StoreLocation.CurrentUser, xs.Location);
82 AssertEquals ("Name", "CA", xs.Name);
83 AssertNotNull ("Certificates", xs.Certificates);
86 [Test]
87 public void ConstructorStoreStringDisallowed ()
89 X509Store xs = new X509Store ("Disallowed");
90 // default properties
91 AssertEquals ("Location", StoreLocation.CurrentUser, xs.Location);
92 AssertEquals ("Name", "Disallowed", xs.Name);
93 AssertNotNull ("Certificates", xs.Certificates);
96 [Test]
97 public void ConstructorStoreStringMy ()
99 X509Store xs = new X509Store ("My");
100 // default properties
101 AssertEquals ("Location", StoreLocation.CurrentUser, xs.Location);
102 AssertEquals ("Name", "My", xs.Name);
103 AssertNotNull ("Certificates", xs.Certificates);
106 [Test]
107 public void ConstructorStoreStringRoot ()
109 X509Store xs = new X509Store ("Root");
110 // default properties
111 AssertEquals ("Location", StoreLocation.CurrentUser, xs.Location);
112 AssertEquals ("Name", "Root", xs.Name);
113 AssertNotNull ("Certificates", xs.Certificates);
116 [Test]
117 public void ConstructorStoreStringTrustedPeople ()
119 X509Store xs = new X509Store ("TrustedPeople");
120 // default properties
121 AssertEquals ("Location", StoreLocation.CurrentUser, xs.Location);
122 AssertEquals ("Name", "TrustedPeople", xs.Name);
123 AssertNotNull ("Certificates", xs.Certificates);
126 [Test]
127 public void ConstructorStoreStringTrustedPublisher ()
129 X509Store xs = new X509Store ("TrustedPublisher");
130 // default properties
131 AssertEquals ("Location", StoreLocation.CurrentUser, xs.Location);
132 AssertEquals ("Name", "TrustedPublisher", xs.Name);
133 AssertNotNull ("Certificates", xs.Certificates);
136 [Test]
137 public void ConstructorStoreStringMono ()
139 // mono isn't defined the StoreName
140 X509Store xs = new X509Store ("Mono");
141 // default properties
142 AssertEquals ("Location", StoreLocation.CurrentUser, xs.Location);
143 AssertEquals ("Name", "Mono", xs.Name);
144 AssertNotNull ("Certificates", xs.Certificates);
147 [Test]
148 public void ConstructorStoreNameAddressBook ()
150 X509Store xs = new X509Store (StoreName.AddressBook);
151 // default properties
152 AssertEquals ("Location", StoreLocation.CurrentUser, xs.Location);
153 AssertEquals ("Name", "AddressBook", xs.Name);
154 AssertNotNull ("Certificates", xs.Certificates);
157 [Test]
158 public void ConstructorStoreNameAuthRoot ()
160 X509Store xs = new X509Store (StoreName.AuthRoot);
161 // default properties
162 AssertEquals ("Location", StoreLocation.CurrentUser, xs.Location);
163 AssertEquals ("Name", "AuthRoot", xs.Name);
164 AssertNotNull ("Certificates", xs.Certificates);
167 [Test]
168 public void ConstructorStoreNameCertificateAuthority ()
170 X509Store xs = new X509Store (StoreName.CertificateAuthority);
171 // default properties
172 AssertEquals ("Location", StoreLocation.CurrentUser, xs.Location);
173 AssertEquals ("Name", "CA", xs.Name);
174 AssertNotNull ("Certificates", xs.Certificates);
177 [Test]
178 public void ConstructorStoreNameDisallowed ()
180 X509Store xs = new X509Store (StoreName.Disallowed);
181 // default properties
182 AssertEquals ("Location", StoreLocation.CurrentUser, xs.Location);
183 AssertEquals ("Name", "Disallowed", xs.Name);
184 AssertNotNull ("Certificates", xs.Certificates);
187 [Test]
188 public void ConstructorStoreNameMy () {
189 X509Store xs = new X509Store (StoreName.My);
190 // default properties
191 AssertEquals ("Location", StoreLocation.CurrentUser, xs.Location);
192 AssertEquals ("Name", "My", xs.Name);
193 AssertNotNull ("Certificates", xs.Certificates);
196 [Test]
197 public void ConstructorStoreNameRoot ()
199 X509Store xs = new X509Store (StoreName.Root);
200 // default properties
201 AssertEquals ("Location", StoreLocation.CurrentUser, xs.Location);
202 AssertEquals ("Name", "Root", xs.Name);
203 AssertNotNull ("Certificates", xs.Certificates);
206 [Test]
207 public void ConstructorStoreNameTrustedPeople ()
209 X509Store xs = new X509Store (StoreName.TrustedPeople);
210 // default properties
211 AssertEquals ("Location", StoreLocation.CurrentUser, xs.Location);
212 AssertEquals ("Name", "TrustedPeople", xs.Name);
213 AssertNotNull ("Certificates", xs.Certificates);
216 [Test]
217 public void ConstructorStoreNameTrustedPublisher ()
219 X509Store xs = new X509Store (StoreName.TrustedPublisher);
220 // default properties
221 AssertEquals ("Location", StoreLocation.CurrentUser, xs.Location);
222 AssertEquals ("Name", "TrustedPublisher", xs.Name);
223 AssertNotNull ("Certificates", xs.Certificates);
227 [Test]
228 [ExpectedException (typeof (CryptographicException))]
229 public void AddEmptyCertificateToReadOnlyNonExistingStore ()
231 // mono isn't defined the StoreName
232 X509Store xs = new X509Store ("NonExistingStore");
233 // default properties
234 AssertEquals ("Location", StoreLocation.CurrentUser, xs.Location);
235 AssertEquals ("Name", "NonExistingStore", xs.Name);
236 AssertNotNull ("Certificates", xs.Certificates);
237 xs.Open (OpenFlags.ReadOnly);
238 xs.Add (new X509CertificateEx ());
239 xs.Close ();
242 [Test]
243 [ExpectedException (typeof (CryptographicException))]
244 public void AddEmptyCertificateToReadWriteNonExistingStore ()
246 // mono isn't defined the StoreName
247 X509Store xs = new X509Store ("NonExistingStore");
248 // default properties
249 AssertEquals ("Location", StoreLocation.CurrentUser, xs.Location);
250 AssertEquals ("Name", "NonExistingStore", xs.Name);
251 AssertNotNull ("Certificates", xs.Certificates);
252 xs.Open (OpenFlags.ReadWrite);
253 xs.Add (new X509CertificateEx ());
254 xs.Close ();
259 #endif