[bcl] Remove more NET_2_0 checks from class libs
[mono.git] / mcs / class / Mainsoft.Web / Tests / Mainsoft.Web.Security / MembershipTests.cs
1 //\r
2 // Mainsoft.Web.Security.Tests.DerbyMembershipProviderTests\r
3 //\r
4 // Authors:\r
5 //      Vladimir Krasnov (vladimirk@mainsoft.com)\r
6 //\r
7 // (C) 2006 Mainsoft\r
8 //\r
9 //\r
10 // Permission is hereby granted, free of charge, to any person obtaining\r
11 // a copy of this software and associated documentation files (the\r
12 // "Software"), to deal in the Software without restriction, including\r
13 // without limitation the rights to use, copy, modify, merge, publish,\r
14 // distribute, sublicense, and/or sell copies of the Software, and to\r
15 // permit persons to whom the Software is furnished to do so, subject to\r
16 // the following conditions:\r
17 // \r
18 // The above copyright notice and this permission notice shall be\r
19 // included in all copies or substantial portions of the Software.\r
20 // \r
21 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
22 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
23 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
24 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
25 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
26 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
27 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
28 //\r
29 \r
30 \r
31 using System;\r
32 using System.IO;\r
33 using System.Web;\r
34 using System.Web.UI;\r
35 using System.Web.UI.WebControls;\r
36 using System.Web.Configuration;\r
37 using System.Web.Security;\r
38 using System.Data;\r
39 using System.Data.OleDb;\r
40 using System.Data.Common;\r
41 using System.Collections.Generic;\r
42 using System.Collections.Specialized;\r
43 using System.Text;\r
44 using Mainsoft.Web.Security;\r
45 using NUnit.Framework;\r
46  \r
47 \r
48 namespace Mainsoft.Web.Security.Tests\r
49 {\r
50         [TestFixture] \r
51         public class DerbyMembershipProviderTests\r
52         {\r
53                 public void Init ()\r
54                 {\r
55                         InitDB ();\r
56                 }\r
57                 public void InitDB ()\r
58                 {\r
59                         if (Directory.Exists ("AspDB"))\r
60                                 Directory.Delete ("AspDB", true);\r
61                 }\r
62                 public void Finish ()\r
63                 {\r
64                         ReleaseDB ();\r
65                 }\r
66 \r
67                 public void ReleaseDB ()\r
68                 {\r
69                 }\r
70                 private MembershipProvider CreateMembershipProvider ()\r
71                 {\r
72                         NameValueCollection nvc = new NameValueCollection ();\r
73                         nvc.Add ("applicationName", "testapp");\r
74                         nvc.Add ("connectionStringName", "derby");\r
75                         nvc.Add ("requiresUniqueEmail", "false");\r
76                         nvc.Add ("enablePasswordRetrieval", "true");\r
77                         nvc.Add ("passwordFormat", "Clear");\r
78 \r
79                         WebConfigurationManager.ConnectionStrings.Add (new System.Configuration.ConnectionStringSettings ("derby", "JdbcDriverClassName=org.apache.derby.jdbc.EmbeddedDriver;JdbcURL=jdbc:derby:AspDB;create=true", "System.Data.OleDb"));\r
80                         DerbyMembershipProvider p = new DerbyMembershipProvider ();\r
81                         p.Initialize ("DerbyMembershipProvider", nvc);\r
82 \r
83                         return p;\r
84                 }\r
85 \r
86                 [Test] \r
87                 public void CreateUserTest ()\r
88                 {\r
89                         MembershipProvider p = CreateMembershipProvider ();\r
90                         MembershipCreateStatus st;\r
91                         MembershipUser u = p.CreateUser("username", "123123!", "username@email.com", "q", "a", true, null, out st);\r
92                         Assert.IsNotNull (u);\r
93                         Assert.AreEqual ("username", u.UserName);\r
94                 }\r
95 \r
96                 [Test] \r
97                 public void ChangePasswordTest ()\r
98                 {\r
99                         MembershipProvider p = CreateMembershipProvider ();\r
100                         MembershipCreateStatus st;\r
101                         MembershipUser u = p.CreateUser("userpwd", "123123!", "username2@email.com", "q", "a", true, null, out st);\r
102                         bool b = p.ChangePassword ("userpwd", "123123!", "123123!123");\r
103                         Assert.IsTrue (b);\r
104 \r
105                         b = p.ChangePassword ("userpwd", "123123!", "123123!123");\r
106                         Assert.IsFalse (b);\r
107                 }\r
108 \r
109                 [Test] \r
110                 public void ChangePasswordQuestionAndAnswerTest ()\r
111                 {\r
112                         MembershipProvider p = CreateMembershipProvider ();\r
113                         MembershipCreateStatus st;\r
114                         MembershipUser u = p.CreateUser("userpwd2", "123123!", "username3@email.com", "q", "a", true, null, out st);\r
115 \r
116                         bool b = p.ChangePasswordQuestionAndAnswer ("userpwd2", "123123!", "q2", "a2");\r
117                         Assert.IsTrue (b);\r
118                         b = p.ChangePasswordQuestionAndAnswer ("userpwd2", "123123!123", "q2", "a2");\r
119                         Assert.IsFalse (b);\r
120                 }\r
121 \r
122                 [Test] \r
123                 public void DeleteUserTest ()\r
124                 {\r
125                         MembershipProvider p = CreateMembershipProvider ();\r
126                         MembershipCreateStatus st;\r
127                         p.CreateUser ("user3", "123123!", "username4@email.com", "q", "a", true, null, out st);\r
128 \r
129                         bool b = p.DeleteUser ("user3", true);\r
130                         Assert.IsTrue (b);\r
131 \r
132                         MembershipUser u = p.GetUser ("user2", false);\r
133                         Assert.IsNotNull (u);\r
134                 }\r
135 \r
136                 [Test] \r
137                 public void GetUserNameByEmailTest ()\r
138                 {\r
139                         MembershipProvider p = CreateMembershipProvider ();\r
140                         string u = p.GetUserNameByEmail ("username@email.com");\r
141                         Assert.AreEqual ("username", u);\r
142                 }\r
143 \r
144                 [Test] \r
145                 public void ValidateUserTest ()\r
146                 {\r
147                         MembershipProvider p = CreateMembershipProvider ();\r
148                         bool b = p.ValidateUser ("username", "123");\r
149                         Assert.IsFalse (b);\r
150                         b = p.ValidateUser ("username", "123");\r
151                         Assert.IsFalse (b);\r
152                         b = p.ValidateUser ("username", "123");\r
153                         Assert.IsFalse (b);\r
154                         b = p.ValidateUser ("username", "123");\r
155                         Assert.IsFalse (b);\r
156                         b = p.ValidateUser ("username", "123");\r
157                         Assert.IsFalse (b);\r
158                         b = p.ValidateUser ("username", "123");\r
159                         Assert.IsFalse (b);\r
160                         b = p.ValidateUser ("username", "123");\r
161                         Assert.IsFalse (b);\r
162                         b = p.ValidateUser ("username", "123");\r
163                         Assert.IsFalse (b);\r
164                         b = p.UnlockUser ("username");\r
165                         Assert.IsFalse (b);\r
166                 }\r
167 \r
168                 [Test] \r
169                 public void UpdateUserTest ()\r
170                 {\r
171                         MembershipProvider p = CreateMembershipProvider ();\r
172                         MembershipCreateStatus st;\r
173                         MembershipUser u = p.CreateUser ("user5", "123123!", "user5@email.com", "q", "a", true, null, out st);\r
174                         \r
175                         u.Comment = "comment2";\r
176                         u.Email = "email2";\r
177                         u.IsApproved = false;\r
178                 \r
179                         p.UpdateUser (u);\r
180                         MembershipUser u2 = p.GetUser (u.ProviderUserKey, false);\r
181 \r
182                         Assert.AreEqual (u.Comment, u2.Comment);\r
183                         Assert.AreEqual (u.Email, u2.Email);\r
184                         Assert.AreEqual (u.IsApproved, u2.IsApproved);\r
185                 }\r
186 \r
187                 [Test] \r
188                 public void GetPasswordTest ()\r
189                 {\r
190                         MembershipProvider p = CreateMembershipProvider ();\r
191                         MembershipCreateStatus st;\r
192                         p.CreateUser ("user7", "123123!", "user5@email.com", "q", "a", true, null, out st);\r
193                         string pass = p.GetPassword ("user7", "a");\r
194                         Assert.AreEqual ("123123!", pass);\r
195                 }\r
196 \r
197                 [Test] \r
198                 public void FindUsersByName ()\r
199                 {\r
200                         MembershipProvider p = CreateMembershipProvider ();\r
201                         MembershipCreateStatus st;\r
202                         p.CreateUser ("user_a", "123123!", "user_a@email.com", "q", "a", true, null, out st);\r
203                         p.CreateUser ("user_b", "123123!", "user_b@email.com", "q", "a", true, null, out st);\r
204                         p.CreateUser ("user_c", "123123!", "user_c@email.com", "q", "a", true, null, out st);\r
205                         p.CreateUser ("user_d", "123123!", "user_d@email.com", "q", "a", true, null, out st);\r
206                         p.CreateUser ("user_e", "123123!", "user_e@email.com", "q", "a", true, null, out st);\r
207                         int tr = 0;\r
208                         MembershipUserCollection u = p.FindUsersByName ("%user_%", 0, 10, out tr);\r
209                         Assert.AreEqual (5, tr);\r
210                         Assert.AreEqual (5, u.Count);\r
211                 }\r
212 \r
213                 [Test] \r
214                 public void FindUsersByEmail ()\r
215                 {\r
216                         MembershipProvider p = CreateMembershipProvider ();\r
217                         MembershipCreateStatus st;\r
218                         p.CreateUser ("user_7a", "123123!", "user_7a@email.com", "q", "a", true, null, out st);\r
219                         p.CreateUser ("user_7b", "123123!", "user_7b@email.com", "q", "a", true, null, out st);\r
220                         p.CreateUser ("user_7c", "123123!", "user_7c@email.com", "q", "a", true, null, out st);\r
221                         p.CreateUser ("user_7d", "123123!", "user_7d@email.com", "q", "a", true, null, out st);\r
222                         p.CreateUser ("user_7e", "123123!", "user_7e@email.com", "q", "a", true, null, out st);\r
223                         int tr = 0;\r
224                         MembershipUserCollection u = p.FindUsersByEmail ("%user_7%", 0, 10, out tr);\r
225                         Assert.AreEqual (5, tr);\r
226                         Assert.AreEqual (5, u.Count);\r
227                 }\r
228         }\r
229 }\r
230 \r