2 // Mainsoft.Web.Security.Tests.DerbyMembershipProviderTests
\r
5 // Vladimir Krasnov (vladimirk@mainsoft.com)
\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
18 // The above copyright notice and this permission notice shall be
\r
19 // included in all copies or substantial portions of the Software.
\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
35 using System.Web.UI;
\r
36 using System.Web.UI.WebControls;
\r
37 using System.Web.Configuration;
\r
38 using System.Web.Security;
\r
40 using System.Data.OleDb;
\r
41 using System.Data.Common;
\r
42 using System.Collections.Generic;
\r
43 using System.Collections.Specialized;
\r
45 using Mainsoft.Web.Security;
\r
46 using NUnit.Framework;
49 namespace Mainsoft.Web.Security.Tests
\r
52 public class DerbyMembershipProviderTests
\r
58 public void InitDB ()
\r
60 if (Directory.Exists ("AspDB"))
\r
61 Directory.Delete ("AspDB", true);
\r
63 public void Finish ()
\r
68 public void ReleaseDB ()
\r
71 private MembershipProvider CreateMembershipProvider ()
\r
73 NameValueCollection nvc = new NameValueCollection ();
\r
74 nvc.Add ("applicationName", "testapp");
\r
75 nvc.Add ("connectionStringName", "derby");
\r
76 nvc.Add ("requiresUniqueEmail", "false");
\r
77 nvc.Add ("enablePasswordRetrieval", "true");
\r
78 nvc.Add ("passwordFormat", "Clear");
\r
80 WebConfigurationManager.ConnectionStrings.Add (new System.Configuration.ConnectionStringSettings ("derby", "JdbcDriverClassName=org.apache.derby.jdbc.EmbeddedDriver;JdbcURL=jdbc:derby:AspDB;create=true", "System.Data.OleDb"));
\r
81 DerbyMembershipProvider p = new DerbyMembershipProvider ();
\r
82 p.Initialize ("DerbyMembershipProvider", nvc);
\r
88 public void CreateUserTest ()
\r
90 MembershipProvider p = CreateMembershipProvider ();
\r
91 MembershipCreateStatus st;
\r
92 MembershipUser u = p.CreateUser("username", "123123!", "username@email.com", "q", "a", true, null, out st);
\r
93 Assert.IsNotNull (u);
\r
94 Assert.AreEqual ("username", u.UserName);
\r
98 public void ChangePasswordTest ()
\r
100 MembershipProvider p = CreateMembershipProvider ();
\r
101 MembershipCreateStatus st;
\r
102 MembershipUser u = p.CreateUser("userpwd", "123123!", "username2@email.com", "q", "a", true, null, out st);
\r
103 bool b = p.ChangePassword ("userpwd", "123123!", "123123!123");
\r
106 b = p.ChangePassword ("userpwd", "123123!", "123123!123");
\r
107 Assert.IsFalse (b);
\r
111 public void ChangePasswordQuestionAndAnswerTest ()
\r
113 MembershipProvider p = CreateMembershipProvider ();
\r
114 MembershipCreateStatus st;
\r
115 MembershipUser u = p.CreateUser("userpwd2", "123123!", "username3@email.com", "q", "a", true, null, out st);
\r
117 bool b = p.ChangePasswordQuestionAndAnswer ("userpwd2", "123123!", "q2", "a2");
\r
119 b = p.ChangePasswordQuestionAndAnswer ("userpwd2", "123123!123", "q2", "a2");
\r
120 Assert.IsFalse (b);
\r
124 public void DeleteUserTest ()
\r
126 MembershipProvider p = CreateMembershipProvider ();
\r
127 MembershipCreateStatus st;
\r
128 p.CreateUser ("user3", "123123!", "username4@email.com", "q", "a", true, null, out st);
\r
130 bool b = p.DeleteUser ("user3", true);
\r
133 MembershipUser u = p.GetUser ("user2", false);
\r
134 Assert.IsNotNull (u);
\r
138 public void GetUserNameByEmailTest ()
\r
140 MembershipProvider p = CreateMembershipProvider ();
\r
141 string u = p.GetUserNameByEmail ("username@email.com");
\r
142 Assert.AreEqual ("username", u);
\r
146 public void ValidateUserTest ()
\r
148 MembershipProvider p = CreateMembershipProvider ();
\r
149 bool b = p.ValidateUser ("username", "123");
\r
150 Assert.IsFalse (b);
\r
151 b = p.ValidateUser ("username", "123");
\r
152 Assert.IsFalse (b);
\r
153 b = p.ValidateUser ("username", "123");
\r
154 Assert.IsFalse (b);
\r
155 b = p.ValidateUser ("username", "123");
\r
156 Assert.IsFalse (b);
\r
157 b = p.ValidateUser ("username", "123");
\r
158 Assert.IsFalse (b);
\r
159 b = p.ValidateUser ("username", "123");
\r
160 Assert.IsFalse (b);
\r
161 b = p.ValidateUser ("username", "123");
\r
162 Assert.IsFalse (b);
\r
163 b = p.ValidateUser ("username", "123");
\r
164 Assert.IsFalse (b);
\r
165 b = p.UnlockUser ("username");
\r
166 Assert.IsFalse (b);
\r
170 public void UpdateUserTest ()
\r
172 MembershipProvider p = CreateMembershipProvider ();
\r
173 MembershipCreateStatus st;
\r
174 MembershipUser u = p.CreateUser ("user5", "123123!", "user5@email.com", "q", "a", true, null, out st);
\r
176 u.Comment = "comment2";
\r
177 u.Email = "email2";
\r
178 u.IsApproved = false;
\r
181 MembershipUser u2 = p.GetUser (u.ProviderUserKey, false);
\r
183 Assert.AreEqual (u.Comment, u2.Comment);
\r
184 Assert.AreEqual (u.Email, u2.Email);
\r
185 Assert.AreEqual (u.IsApproved, u2.IsApproved);
\r
189 public void GetPasswordTest ()
\r
191 MembershipProvider p = CreateMembershipProvider ();
\r
192 MembershipCreateStatus st;
\r
193 p.CreateUser ("user7", "123123!", "user5@email.com", "q", "a", true, null, out st);
\r
194 string pass = p.GetPassword ("user7", "a");
\r
195 Assert.AreEqual ("123123!", pass);
\r
199 public void FindUsersByName ()
\r
201 MembershipProvider p = CreateMembershipProvider ();
\r
202 MembershipCreateStatus st;
\r
203 p.CreateUser ("user_a", "123123!", "user_a@email.com", "q", "a", true, null, out st);
\r
204 p.CreateUser ("user_b", "123123!", "user_b@email.com", "q", "a", true, null, out st);
\r
205 p.CreateUser ("user_c", "123123!", "user_c@email.com", "q", "a", true, null, out st);
\r
206 p.CreateUser ("user_d", "123123!", "user_d@email.com", "q", "a", true, null, out st);
\r
207 p.CreateUser ("user_e", "123123!", "user_e@email.com", "q", "a", true, null, out st);
\r
209 MembershipUserCollection u = p.FindUsersByName ("%user_%", 0, 10, out tr);
\r
210 Assert.AreEqual (5, tr);
\r
211 Assert.AreEqual (5, u.Count);
\r
215 public void FindUsersByEmail ()
\r
217 MembershipProvider p = CreateMembershipProvider ();
\r
218 MembershipCreateStatus st;
\r
219 p.CreateUser ("user_7a", "123123!", "user_7a@email.com", "q", "a", true, null, out st);
\r
220 p.CreateUser ("user_7b", "123123!", "user_7b@email.com", "q", "a", true, null, out st);
\r
221 p.CreateUser ("user_7c", "123123!", "user_7c@email.com", "q", "a", true, null, out st);
\r
222 p.CreateUser ("user_7d", "123123!", "user_7d@email.com", "q", "a", true, null, out st);
\r
223 p.CreateUser ("user_7e", "123123!", "user_7e@email.com", "q", "a", true, null, out st);
\r
225 MembershipUserCollection u = p.FindUsersByEmail ("%user_7%", 0, 10, out tr);
\r
226 Assert.AreEqual (5, tr);
\r
227 Assert.AreEqual (5, u.Count);
\r