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
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
39 using System.Data.OleDb;
\r
40 using System.Data.Common;
\r
41 using System.Collections.Generic;
\r
42 using System.Collections.Specialized;
\r
44 using Mainsoft.Web.Security;
\r
45 using NUnit.Framework;
\r
48 namespace Mainsoft.Web.Security.Tests
\r
51 public class DerbyMembershipProviderTests
\r
57 public void InitDB ()
\r
59 if (Directory.Exists ("AspDB"))
\r
60 Directory.Delete ("AspDB", true);
\r
62 public void Finish ()
\r
67 public void ReleaseDB ()
\r
70 private MembershipProvider CreateMembershipProvider ()
\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
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
87 public void CreateUserTest ()
\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
97 public void ChangePasswordTest ()
\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
105 b = p.ChangePassword ("userpwd", "123123!", "123123!123");
\r
106 Assert.IsFalse (b);
\r
110 public void ChangePasswordQuestionAndAnswerTest ()
\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
116 bool b = p.ChangePasswordQuestionAndAnswer ("userpwd2", "123123!", "q2", "a2");
\r
118 b = p.ChangePasswordQuestionAndAnswer ("userpwd2", "123123!123", "q2", "a2");
\r
119 Assert.IsFalse (b);
\r
123 public void DeleteUserTest ()
\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
129 bool b = p.DeleteUser ("user3", true);
\r
132 MembershipUser u = p.GetUser ("user2", false);
\r
133 Assert.IsNotNull (u);
\r
137 public void GetUserNameByEmailTest ()
\r
139 MembershipProvider p = CreateMembershipProvider ();
\r
140 string u = p.GetUserNameByEmail ("username@email.com");
\r
141 Assert.AreEqual ("username", u);
\r
145 public void ValidateUserTest ()
\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
169 public void UpdateUserTest ()
\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
175 u.Comment = "comment2";
\r
176 u.Email = "email2";
\r
177 u.IsApproved = false;
\r
180 MembershipUser u2 = p.GetUser (u.ProviderUserKey, false);
\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
188 public void GetPasswordTest ()
\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
198 public void FindUsersByName ()
\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
208 MembershipUserCollection u = p.FindUsersByName ("%user_%", 0, 10, out tr);
\r
209 Assert.AreEqual (5, tr);
\r
210 Assert.AreEqual (5, u.Count);
\r
214 public void FindUsersByEmail ()
\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
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