2 // X509StoreTest.cs - NUnit tests for X509Store
5 // Sebastien Pouliot (spouliot@motus.com)
7 // (C) 2003 Motus Technologies Inc. (http://www.motus.com)
12 using NUnit
.Framework
;
15 using System
.Collections
;
16 using System
.Security
.Cryptography
;
17 using System
.Security
.Cryptography
.X509Certificates
;
19 namespace MonoTests
.System
.Security
.Cryptography
.X509Certificates
{
22 public class X509StoreTest
: Assertion
{
25 public void ConstructorEmpty ()
27 X509Store xs
= new X509Store ();
29 AssertEquals ("Location", StoreLocation
.CurrentUser
, xs
.Location
);
30 AssertEquals ("Name", "MY", xs
.Name
);
31 AssertNotNull ("Certificates", xs
.Certificates
);
36 public void ConstructorStoreLocationCurrentUser ()
38 X509Store xs
= new X509Store (StoreLocation
.CurrentUser
);
40 AssertEquals ("Location", StoreLocation
.CurrentUser
, xs
.Location
);
41 AssertEquals ("Name", "MY", xs
.Name
);
42 AssertNotNull ("Certificates", xs
.Certificates
);
46 public void ConstructorStoreLocationLocalMachine ()
48 X509Store xs
= new X509Store (StoreLocation
.LocalMachine
);
50 AssertEquals ("Location", StoreLocation
.LocalMachine
, xs
.Location
);
51 AssertEquals ("Name", "MY", xs
.Name
);
52 AssertNotNull ("Certificates", xs
.Certificates
);
57 public void ConstructorStoreStringAddressBook ()
59 X509Store xs
= new X509Store ("AddressBook");
61 AssertEquals ("Location", StoreLocation
.CurrentUser
, xs
.Location
);
62 AssertEquals ("Name", "AddressBook", xs
.Name
);
63 AssertNotNull ("Certificates", xs
.Certificates
);
67 public void ConstructorStoreStringAuthRoot ()
69 X509Store xs
= new X509Store ("AuthRoot");
71 AssertEquals ("Location", StoreLocation
.CurrentUser
, xs
.Location
);
72 AssertEquals ("Name", "AuthRoot", xs
.Name
);
73 AssertNotNull ("Certificates", xs
.Certificates
);
77 public void ConstructorStoreStringCertificateAuthority ()
79 X509Store xs
= new X509Store ("CA");
81 AssertEquals ("Location", StoreLocation
.CurrentUser
, xs
.Location
);
82 AssertEquals ("Name", "CA", xs
.Name
);
83 AssertNotNull ("Certificates", xs
.Certificates
);
87 public void ConstructorStoreStringDisallowed ()
89 X509Store xs
= new X509Store ("Disallowed");
91 AssertEquals ("Location", StoreLocation
.CurrentUser
, xs
.Location
);
92 AssertEquals ("Name", "Disallowed", xs
.Name
);
93 AssertNotNull ("Certificates", xs
.Certificates
);
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
);
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
);
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
);
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
);
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
);
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
);
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
);
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
);
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
);
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
);
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
);
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
);
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
);
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 ());
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 ());