New test.
[mono.git] / mcs / class / System / Test / System.Security.Cryptography.X509Certificates / X509StoreTest.cs
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 //
9
10 #if NET_2_0
11
12 using NUnit.Framework;
13
14 using System;
15 using System.Collections;
16 using System.Security.Cryptography;
17 using System.Security.Cryptography.X509Certificates;
18
19 namespace MonoTests.System.Security.Cryptography.X509Certificates {
20
21         [TestFixture]
22         public class X509StoreTest : Assertion {
23
24                 [Test]
25                 public void ConstructorEmpty () 
26                 {
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);
32                 }
33
34
35                 [Test]
36                 public void ConstructorStoreLocationCurrentUser () 
37                 {
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);
43                 }
44
45                 [Test]
46                 public void ConstructorStoreLocationLocalMachine () 
47                 {
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);
53                 }
54
55
56                 [Test]
57                 public void ConstructorStoreStringAddressBook () 
58                 {
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);
64                 }
65
66                 [Test]
67                 public void ConstructorStoreStringAuthRoot () 
68                 {
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);
74                 }
75
76                 [Test]
77                 public void ConstructorStoreStringCertificateAuthority () 
78                 {
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);
84                 }
85
86                 [Test]
87                 public void ConstructorStoreStringDisallowed () 
88                 {
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);
94                 }
95
96                 [Test]
97                 public void ConstructorStoreStringMy () 
98                 {
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);
104                 }
105
106                 [Test]
107                 public void ConstructorStoreStringRoot () 
108                 {
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);
114                 }
115
116                 [Test]
117                 public void ConstructorStoreStringTrustedPeople () 
118                 {
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);
124                 }
125
126                 [Test]
127                 public void ConstructorStoreStringTrustedPublisher () 
128                 {
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);
134                 }
135
136                 [Test]
137                 public void ConstructorStoreStringMono () 
138                 {
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);
145                 }
146
147                 [Test]
148                 public void ConstructorStoreNameAddressBook () 
149                 {
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);
155                 }
156
157                 [Test]
158                 public void ConstructorStoreNameAuthRoot () 
159                 {
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);
165                 }
166
167                 [Test]
168                 public void ConstructorStoreNameCertificateAuthority () 
169                 {
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);
175                 }
176
177                 [Test]
178                 public void ConstructorStoreNameDisallowed () 
179                 {
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);
185                 }
186
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);
194                 }
195
196                 [Test]
197                 public void ConstructorStoreNameRoot () 
198                 {
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);
204                 }
205
206                 [Test]
207                 public void ConstructorStoreNameTrustedPeople () 
208                 {
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);
214                 }
215
216                 [Test]
217                 public void ConstructorStoreNameTrustedPublisher () 
218                 {
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);
224                 }
225
226
227                 [Test]
228                 [ExpectedException (typeof (CryptographicException))]
229                 public void AddEmptyCertificateToReadOnlyNonExistingStore () 
230                 {
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 X509Certificate2 ());
239                         xs.Close ();
240                 }
241
242                 [Test]
243                 [ExpectedException (typeof (CryptographicException))]
244                 public void AddEmptyCertificateToReadWriteNonExistingStore () 
245                 {
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 X509Certificate2 ());
254                         xs.Close ();
255                 }
256         }
257 }
258
259 #endif