PageRenderTime 28ms CodeModel.GetById 15ms RepoModel.GetById 1ms app.codeStats 0ms

/tags/1.31/src/Tests/Mailing/SetupFixture.cs

#
C# | 162 lines | 127 code | 29 blank | 6 comment | 7 complexity | 9c61636618bc01ac1dacd622383e064c MD5 | raw file
Possible License(s): AGPL-1.0, LGPL-2.1
  1. /// Copyright (c) 2008 by eunge.liu@gmail.com. All Rights Reserved.
  2. // Information Contained Herein is Proprietary and Confidential.
  3. // $Id: SetupFixture.cs 308 2009-10-24 05:37:58Z eungeliu $
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Collections.ObjectModel;
  7. using System.Data.Linq;
  8. using System.IO;
  9. using System.Linq;
  10. using System.Linq.Expressions;
  11. using System.Text;
  12. using System.Transactions;
  13. using System.Web.UI;
  14. using System.Web.UI.WebControls;
  15. using System.Xml;
  16. using System.Xml.Schema;
  17. using BaoJianSoft.Common;
  18. using BaoJianSoft.Platform;
  19. using BaoJianSoft.Platform.Initialization;
  20. using BaoJianSoft.Platform.Linq;
  21. using BaoJianSoft.Web.Extensions;
  22. using BaoJianSoft.Web.Extensions.Controls;
  23. using BaoJianSoft.Web.Extensions.DynamicPages;
  24. using NUnit.Framework;
  25. using AspNetMembership = System.Web.Security.Membership;
  26. namespace BaoJianSoft.Tests.Mailing
  27. {
  28. [SetUpFixture]
  29. public class SetupFixture : BaoJianSoft.Tests.SetupFixture
  30. {
  31. internal static UserObject User_Admin { get; set; }
  32. internal static UserObject User_OrganizationA_RoleX { get; set; }
  33. internal static UserObject User_OrganizationB_RoleXY { get; set; }
  34. internal static OrganizationObject Organization_Administration { get; set; }
  35. internal static OrganizationObject OrganizationA { get; set; }
  36. internal static OrganizationObject OrganizationB { get; set; }
  37. internal static RoleObject RoleX { get; set; }
  38. internal static RoleObject RoleY { get; set; }
  39. internal static IAuthenticationContext AuthenticationContext { get { return SpringContext.Current.GetObject<IAuthenticationContext>(); } }
  40. [SetUp]
  41. public override void GlobalSetup()
  42. {
  43. base.GlobalSetup();
  44. IOrganizationApi organizationApi = SpringContext.Current.GetObject<IOrganizationApi>();
  45. int recordCount;
  46. Expression<Func<Organization, bool>> predicate = org => org.Status == OrganizationStatus.Enabled;
  47. Organization_Administration = organizationApi.FindOrganizations(predicate, null, null, 0, 1, out recordCount).FirstOrDefault();
  48. IAuthenticationContext authenticationContext = SpringContext.Current.GetObject<IAuthenticationContext>();
  49. authenticationContext.Login("admin", "password1");
  50. // 创建默认的部门
  51. IPlatformConfiguration platformConfiguration = SpringContext.Current.GetObject<IPlatformConfiguration>();
  52. BaoJianSoft.Platform.OrganizationStatus organizationStatus = BaoJianSoft.Platform.OrganizationStatus.Enabled;
  53. OrganizationA = new OrganizationObject
  54. {
  55. OrganizationCode = "A",
  56. OrganizationName = "部门A",
  57. OrganizationTypeId = platformConfiguration.OrganizationType.OrganizationTypeId,
  58. ParentOrganizationId = Organization_Administration.OrganizationId,
  59. Status = organizationStatus,
  60. Description = ""
  61. };
  62. organizationApi.Save(OrganizationA);
  63. OrganizationB = new OrganizationObject
  64. {
  65. OrganizationCode = "B",
  66. OrganizationName = "部门B",
  67. OrganizationTypeId = platformConfiguration.OrganizationType.OrganizationTypeId,
  68. ParentOrganizationId = Organization_Administration.OrganizationId,
  69. Status = organizationStatus,
  70. Description = ""
  71. };
  72. organizationApi.Save(OrganizationB);
  73. // 创建用户
  74. IMembershipApi membershipApi = SpringContext.Current.GetObject<IMembershipApi>();
  75. User_Admin = membershipApi.Get("admin");
  76. User_OrganizationA_RoleX = new UserObject
  77. {
  78. UserName = "User_OrganizationA_RoleX",
  79. DisplayName = "User_OrganizationA_RoleX.Disp",
  80. Email = "eudevA@5vsoft.com",
  81. Comment = "部门A用户",
  82. IsApproved = true,
  83. OrganizationId= OrganizationA.OrganizationId
  84. };
  85. membershipApi.Save(User_OrganizationA_RoleX, "password1", null);
  86. User_OrganizationB_RoleXY = new UserObject
  87. {
  88. UserName = "User_OrganizationB_RoleXY",
  89. DisplayName = "User_OrganizationB_RoleXY.Disp",
  90. Email = "eudevB@5vsoft.com",
  91. Comment = "部门B用户",
  92. IsApproved = true,
  93. OrganizationId = OrganizationB.OrganizationId
  94. };
  95. membershipApi.Save(User_OrganizationB_RoleXY, "password1", null);
  96. // 创建默认角色
  97. IRoleApi roleApi = SpringContext.Current.GetObject<IRoleApi>();
  98. RoleX = new RoleObject { RoleName = "操作员X", OrganizationTypeIds = new Collection<Guid> { platformConfiguration.OrganizationType.OrganizationTypeId } };
  99. RoleY = new RoleObject { RoleName = "操作员Y", OrganizationTypeIds = new Collection<Guid> { platformConfiguration.OrganizationType.OrganizationTypeId } };
  100. roleApi.Save(RoleX);
  101. roleApi.Save(RoleY);
  102. roleApi.SetUserToRoles(User_OrganizationA_RoleX.UserId, new[] { RoleX.RoleId });
  103. roleApi.SetUserToRoles(User_OrganizationB_RoleXY.UserId, new[] { RoleX.RoleId, RoleY.RoleId });
  104. }
  105. [TearDown]
  106. public override void GlobalTearDown()
  107. {
  108. base.GlobalTearDown();
  109. using (MembershipDataContext ctx = DataContextFactory.Create<MembershipDataContext>())
  110. {
  111. List<Guid> createdUserIds = new List<Guid> { User_OrganizationA_RoleX.UserId, User_OrganizationB_RoleXY.UserId };
  112. List<Guid> createdRoleIds = new List<Guid> { RoleX.RoleId, RoleY.RoleId };
  113. List<Guid> createdOrganizationIds = new List<Guid> { OrganizationA.OrganizationId, OrganizationB.OrganizationId };
  114. foreach (Guid createdUserId in createdUserIds)
  115. {
  116. ctx.UsersInRoles.Delete(uir => uir.UserId == createdUserId);
  117. ctx.Memberships.Delete(m => m.UserId == createdUserId);
  118. ctx.Users.Delete(u => u.UserId == createdUserId);
  119. }
  120. foreach (Guid createdRoleId in createdRoleIds)
  121. {
  122. ctx.RolesInOrganizationTypes.Delete(x => x.RoleId == createdRoleId);
  123. ctx.Roles.Delete(r => r.RoleId == createdRoleId);
  124. }
  125. foreach (Guid createdOrganizationId in createdOrganizationIds)
  126. {
  127. ctx.Organizations.Delete(org => org.OrganizationId == createdOrganizationId);
  128. }
  129. ctx.SubmitChanges();
  130. }
  131. }
  132. }
  133. }