Free cookie consent management tool by TermsFeed Policy Generator

source: branches/HeuristicLab.Services.Authentication Prototype/UnitTests/HeuristicLabRoleProviderTest.cs @ 3967

Last change on this file since 3967 was 3967, checked in by mholper, 14 years ago

implemented Method HeuristicLabRoleProvider.GetUsersInRoleTest and UnitTest (#1046)

File size: 13.0 KB
Line 
1using Service.Provider;
2using Microsoft.VisualStudio.TestTools.UnitTesting;
3using System.Linq;
4using System.Collections.Generic;
5namespace UnitTests {
6  /// <summary>
7  ///This is a test class for HeuristicLabRoleProviderTest and is intended
8  ///to contain all HeuristicLabRoleProviderTest Unit Tests
9  ///</summary>
10  [TestClass()]
11  public class HeuristicLabRoleProviderTest : AbstractHeuristicLabTest {
12    private TestContext testContextInstance;
13    private const string TEST_ROLE_NAME = "testRole";
14    private const string TEST_USER_NAME = "testUser";
15    /// <summary>
16    ///Gets or sets the test context which provides
17    ///information about and functionality for the current test run.
18    ///</summary>
19    public TestContext TestContext {
20      get {
21        return testContextInstance;
22      }
23      set {
24        testContextInstance = value;
25      }
26    }
27
28    #region Additional test attributes
29    //
30    //You can use the following additional attributes as you write your tests:
31    //
32    //Use ClassInitialize to run code before running the first test in the class
33    //[ClassInitialize()]
34    //public static void MyClassInitialize(TestContext testContext)
35    //{
36    //}
37    //
38    //Use ClassCleanup to run code after all tests in a class have run
39    //[ClassCleanup()]
40    //public static void MyClassCleanup()
41    //{
42    //}
43    //
44    //Use TestInitialize to run code before running each test
45    //[TestInitialize()]
46    //public void MyTestInitialize()
47    //{
48    //}
49    //
50    //Use TestCleanup to run code after each test has run
51    //[TestCleanup()]
52    //public void MyTestCleanup()
53    //{
54    //}
55    //
56    #endregion
57
58
59    /// <summary>
60    ///A test for ApplicationName
61    ///</summary>
62    [TestMethod()]
63    public void ApplicationNameTest() {
64      HeuristicLabRoleProvider target = new HeuristicLabRoleProvider();
65      string expected = "JavaIsEvenCooler";
66      string actual;
67      target.ApplicationName = expected;
68      actual = target.ApplicationName;
69      Assert.AreEqual(expected, actual);
70    }
71
72    /// <summary>
73    ///tests if the RoleExits method works --> test is done in a positiv and negativ way
74    ///</summary>
75    [TestMethod()]
76    public void RoleExistsTest() {
77      HeuristicLabRoleProvider target = new HeuristicLabRoleProvider();
78      Persistence.HeuristicLabRole role = new Persistence.HeuristicLabRole();
79      role.RoleName = TEST_ROLE_NAME;
80      db.HeuristicLabRole.InsertOnSubmit((Persistence.HeuristicLabRole)role);
81      db.SubmitChanges();
82      Assert.IsTrue(target.RoleExists(TEST_ROLE_NAME));
83      Assert.IsFalse(target.RoleExists(TEST_ROLE_NAME + TEST_ROLE_NAME));
84    }
85
86    /// <summary>
87    ///A test for RemoveUsersFromRoles
88    ///</summary>
89    [TestMethod()]
90    public void RemoveUsersFromRolesTest() {
91      HeuristicLabRoleProvider target = new HeuristicLabRoleProvider(); // TODO: Initialize to an appropriate value
92      string[] usernames = null; // TODO: Initialize to an appropriate value
93      string[] roleNames = null; // TODO: Initialize to an appropriate value
94      target.RemoveUsersFromRoles(usernames, roleNames);
95      Assert.Inconclusive("A method that does not return a value cannot be verified.");
96    }
97
98    /// <summary>
99    /// test if user is in Role (positive and negative Assertion)
100    ///</summary>
101    [TestMethod()]
102    public void IsUserInRoleTest() {
103      HeuristicLabRoleProvider target = new HeuristicLabRoleProvider(); // TODO: Initialize to an appropriate value
104      Dictionary<string, Persistence.HeuristicLabUser> users = new Dictionary<string, Persistence.HeuristicLabUser>();
105      List<string> roles = new List<string>();
106      users.Add("mholper", new Persistence.HeuristicLabUser("mholper", "foo", "password", "comment"));
107
108      roles.Add("admin");
109      roles.Add("users");
110      foreach (string role in roles) {
111        target.CreateRole(role);
112      }
113      foreach (Persistence.HeuristicLabUser user in users.Values) {
114        db.HeuristicLabUsers.InsertOnSubmit(user);
115      }
116      db.SubmitChanges();
117      string[] rolesToTest = new string[1];
118      rolesToTest[0] = "admin";
119      target.AddUsersToRoles(users.Keys.ToArray(), rolesToTest); // roles.ToArray());
120      Assert.IsTrue(target.IsUserInRole("mholper", "admin"));
121      Assert.IsFalse(target.IsUserInRole("mholper", "user"));
122    }
123
124    /// <summary>
125    ///A test for GetUsersInRole
126    ///</summary>
127    [TestMethod()]
128    public void GetUsersInRoleTest() {
129      HeuristicLabRoleProvider target = new HeuristicLabRoleProvider(); // TODO: Initialize to an appropriate value
130      string dummyRole = "dummyRole";
131      Assert.IsTrue(target.GetUsersInRole(null).Length == 0);
132      Assert.IsTrue(target.GetUsersInRole(dummyRole).Length == 0);
133      Persistence.HeuristicLabUser user = new Persistence.HeuristicLabUser("dummyUser", "foo", "foo", "foo");
134      Persistence.HeuristicLabUser user2 = new Persistence.HeuristicLabUser("dummyUser2", "foo", "foo", "foo");
135      db.HeuristicLabUsers.InsertOnSubmit(user);
136      db.HeuristicLabUsers.InsertOnSubmit(user2);
137      db.SubmitChanges();
138      target.CreateRole("testRole1");
139      target.CreateRole("testRole2");
140      List<string> users = new List<string>();
141      List<string> roles = new List<string>();
142      roles.Add("testRole1");
143      roles.Add("testRole2");
144      users.Add("dummyUser");
145
146      //--> dummyUser get Role testRole1+testRole2
147      target.AddUsersToRoles(users.ToArray(), roles.ToArray());
148      string[] usersForRole = target.GetUsersInRole("testRole2");
149      Assert.IsTrue(usersForRole.Length == 1);
150      Assert.IsTrue(usersForRole.Contains("dummyUser"));
151
152      //--> dummyUser2 get onl Role testRole1
153      roles.Remove("testRole2");
154      users.Remove("dummyUser");
155      users.Add("dummyUser2");
156      target.AddUsersToRoles(users.ToArray(), roles.ToArray());
157
158      usersForRole = target.GetUsersInRole("testRole1");
159      Assert.IsTrue(usersForRole.Length == 2);
160      Assert.IsTrue(usersForRole.Contains("dummyUser"));
161      Assert.IsTrue(usersForRole.Contains("dummyUser2"));
162
163    }
164
165    /// <summary>
166    ///A test for GetRolesForUser
167    ///</summary>
168    [TestMethod()]
169    public void GetRolesForUserTest() {
170      HeuristicLabRoleProvider target = new HeuristicLabRoleProvider(); // TODO: Initialize to an appropriate value
171      string dummyUser = "dummyUser";
172      Assert.IsTrue(target.GetRolesForUser(null).Length == 0);
173      Assert.IsTrue(target.GetRolesForUser(dummyUser).Length == 0);
174      Persistence.HeuristicLabUser user = new Persistence.HeuristicLabUser("dummyUser", "foo", "foo", "foo");
175      Persistence.HeuristicLabUser user2 = new Persistence.HeuristicLabUser("dummyUser2", "foo", "foo", "foo");
176      db.HeuristicLabUsers.InsertOnSubmit(user);
177      db.HeuristicLabUsers.InsertOnSubmit(user2);
178      db.SubmitChanges();
179      target.CreateRole("testRole1");
180      target.CreateRole("testRole2");
181      List<string> users = new List<string>();
182      List<string> roles = new List<string>();
183      users.Add("dummyUser");
184      users.Add("dummyUser2");
185      roles.Add("testRole1");
186      target.AddUsersToRoles(users.ToArray(), roles.ToArray());
187      users.Remove("dummyUser2");
188      roles.Add("testRole2");
189      roles.Remove("testRole1");
190      target.AddUsersToRoles(users.ToArray(), roles.ToArray());
191      string[] rolesForUser = target.GetRolesForUser("dummyUser");
192      Assert.IsTrue(rolesForUser.Length == 2);
193      Assert.IsTrue(rolesForUser.Contains("testRole1"));
194      Assert.IsTrue(rolesForUser.Contains("testRole2"));
195
196      rolesForUser = target.GetRolesForUser("dummyUser2");
197      Assert.IsTrue(rolesForUser.Length == 1);
198      Assert.IsTrue(rolesForUser.Contains("testRole1"));
199
200
201
202    }
203
204    /// <summary>
205    ///A test for GetAllRoles
206    ///</summary>
207    [TestMethod()]
208    public void GetAllRolesTest() {
209      HeuristicLabRoleProvider target = new HeuristicLabRoleProvider();
210      List<string> roleNames = new List<string>();
211      roleNames.Add("Pascal");
212      roleNames.Add("Java");
213      roleNames.Add("Pascal");
214      roleNames.Add("VisalBasic");
215      foreach (string s in roleNames) {
216        target.CreateRole(s);
217      }
218      target.CreateRole(null);
219      string[] roles = target.GetAllRoles();
220      foreach (string role in roles) {
221        Assert.IsTrue(roleNames.Remove(role));
222      }
223      Assert.IsTrue(roleNames.Count == 0);
224    }
225
226    /// <summary>
227    ///A test for FindUsersInRole
228    ///</summary>
229    [TestMethod()]
230    public void FindUsersInRoleTest() {
231      HeuristicLabRoleProvider target = new HeuristicLabRoleProvider();
232      Assert.IsTrue(target.FindUsersInRole(null, null).Length == 0);
233      Assert.IsTrue(target.FindUsersInRole("dummyRole", null).Length == 0);
234      Assert.IsTrue(target.FindUsersInRole(null, "dummyUser").Length == 0);
235      Persistence.HeuristicLabUser user = new Persistence.HeuristicLabUser("dummyUser", "foo", "foo", "foo");
236      Persistence.HeuristicLabUser user2 = new Persistence.HeuristicLabUser("dummyUser2", "foo", "foo", "foo");
237      db.HeuristicLabUsers.InsertOnSubmit(user);
238      db.HeuristicLabUsers.InsertOnSubmit(user2);
239      db.SubmitChanges();
240      target.CreateRole("testRole");
241      Assert.IsTrue(target.FindUsersInRole("testRole", "dummyUser").Length == 0);
242      Assert.IsTrue(target.FindUsersInRole("testRole", "dummyUser2").Length == 0);
243      Assert.IsTrue(target.FindUsersInRole("testRole", "dummyUser3").Length == 0);
244
245      target.AddUsersToRoles(new string[] { "dummyUser", "dummyUser2" }, new string[] { "testRole" });
246      Assert.IsTrue(target.FindUsersInRole("testRole", "dummyUser").Length == 2);
247      Assert.IsTrue(target.FindUsersInRole("testRole", "dummyUser2").Length == 1);
248      Assert.IsTrue(target.FindUsersInRole("testRole", "dummyUser3").Length == 0);
249
250
251    }
252
253    /// <summary>
254    ///A test for DeleteRole
255    ///</summary>
256    [TestMethod()]
257    public void DeleteRoleTest() {
258      HeuristicLabRoleProvider target = new HeuristicLabRoleProvider(); // TODO: Initialize to an appropriate value
259      string roleName = string.Empty; // TODO: Initialize to an appropriate value
260      bool throwOnPopulatedRole = false; // TODO: Initialize to an appropriate value
261      bool expected = false; // TODO: Initialize to an appropriate value
262      bool actual;
263      actual = target.DeleteRole(roleName, throwOnPopulatedRole);
264      Assert.AreEqual(expected, actual);
265      Assert.Inconclusive("Verify the correctness of this test method.");
266    }
267
268    /// <summary>
269    ///A test for CreateRole
270    ///</summary>
271    [TestMethod()]
272    public void CreateRoleTest() {
273      HeuristicLabRoleProvider target = new HeuristicLabRoleProvider();
274      target.CreateRole("role1");
275      target.CreateRole("role2");
276      target.CreateRole("role3", true);
277      Assert.IsTrue(db.HeuristicLabRole.Count(r => r.RoleName == "role1" && r.IsPermission == false) == 1);
278      Assert.IsTrue(db.HeuristicLabRole.Count(r => r.RoleName == "role2" && r.IsPermission == false) == 1);
279      Assert.IsTrue(db.HeuristicLabRole.Count(r => r.RoleName == "role3" && r.IsPermission == true) == 1);
280    }
281
282    protected int getUserRolesCount() {
283      return db.HeuristicLabUserRole.Count();
284    }
285
286
287    /// <summary>
288    ///A test for AddUsersToRoles
289    ///</summary>
290    [TestMethod()]
291    public void AddUsersToRolesTest() {
292      HeuristicLabRoleProvider target = new HeuristicLabRoleProvider(); // TODO: Initialize to an appropriate value
293      Dictionary<string, Persistence.HeuristicLabUser> users = new Dictionary<string, Persistence.HeuristicLabUser>();
294      List<string> roles = new List<string>();
295      users.Add("dkhan", new Persistence.HeuristicLabUser("dkhan", "foo", "password", "comment"));
296      users.Add("hmayr", new Persistence.HeuristicLabUser("hmayr", "foo", "password", "comment"));
297      users.Add("bfarka", new Persistence.HeuristicLabUser("bfarka", "foo", "password", "comment"));
298
299      roles.Add("admin");
300      roles.Add("users");
301      //testing to create roles with users that doesn't exists
302      target.AddUsersToRoles(users.Keys.ToArray(), roles.ToArray());
303      Assert.IsTrue(getUserRolesCount() == 0);
304
305      foreach (string role in roles) {
306        target.CreateRole(role);
307      }
308      target.AddUsersToRoles(users.Keys.ToArray(), roles.ToArray());
309      Assert.IsTrue(getUserRolesCount() == 0);
310      foreach (Persistence.HeuristicLabUser user in users.Values) {
311        db.HeuristicLabUsers.InsertOnSubmit(user);
312      }
313      db.SubmitChanges();
314      target.AddUsersToRoles(users.Keys.ToArray(), roles.ToArray());
315      Assert.IsTrue(getUserRolesCount() == (roles.Count + users.Count));
316
317    }
318
319    /// <summary>
320    ///A test for HeuristicLabRoleProvider Constructor
321    ///</summary>
322    [TestMethod()]
323    public void HeuristicLabRoleProviderConstructorTest() {
324      HeuristicLabRoleProvider target = new HeuristicLabRoleProvider();
325      Assert.IsNotNull(target);
326    }
327  }
328
329
330
331}
Note: See TracBrowser for help on using the repository browser.