public void TestAddPermissionThrowsExceptionIfCurrentUserDoesNotHaveRights1() { try { #region Arrange Controller.ControllerContext.HttpContext = new MockHttpContext(1, new[] { "" }); ControllerRecordFakes.FakeApplications(3, ApplicationRepository); ControllerRecordFakes.FakeRoles(5, RoleRepository); ControllerRecordFakes.FakeUsers(3, UserRepository); ControllerRecordFakes.FakePermissions(1, PermissionRepository); UserService.Expect(a => a.CanUserManageGivenLogin("Name3", "UserName", "LoginId3")).Return(false).Repeat.Any(); PermissionRepository.Expect(a => a.EnsurePersistent(Arg <Permission> .Is.Anything)).Repeat.Any(); #endregion Arrange #region Act Controller.AddPermission("Name3", "LoginId3", 3); #endregion Act } catch (Exception ex) { #region Assert Assert.IsNotNull(ex); Assert.AreEqual("UserName does not have access to manage LoginId3 within the Name3 application", ex.Message); UserService.AssertWasCalled(a => a.CanUserManageGivenLogin("Name3", "UserName", "LoginId3")); PermissionRepository.AssertWasNotCalled(a => a.EnsurePersistent(Arg <Permission> .Is.Anything)); #endregion Assert throw; } }
public void TestAddPermissionWhenPermissionAlreadyExists() { #region Arrange Controller.ControllerContext.HttpContext = new MockHttpContext(1, new[] { "" }); ControllerRecordFakes.FakeRoles(5, RoleRepository); ControllerRecordFakes.FakeApplications(3, ApplicationRepository); ControllerRecordFakes.FakeUsers(3, UserRepository); var permissions = new List <Permission> { CreateValidEntities.Permission(1) }; permissions[0].Application = ApplicationRepository.GetNullableById(3); permissions[0].User = UserRepository.GetNullableById(3); permissions[0].Role = RoleRepository.GetNullableById(2); ControllerRecordFakes.FakePermissions(1, PermissionRepository, permissions); UserService.Expect(a => a.CanUserManageGivenLogin("Name3", "UserName", "LoginId3")).Return(true).Repeat.Any(); RoleService.Expect(a => a.GetVisibleByUser("Name3", "UserName")).Return(RoleRepository.Queryable).Repeat.Any(); PermissionRepository.Expect(a => a.EnsurePersistent(Arg <Permission> .Is.Anything)).Repeat.Any(); #endregion Arrange #region Act Controller.AddPermission("Name3", "LoginId3", 2); #endregion Act #region Assert UserService.AssertWasCalled(a => a.CanUserManageGivenLogin("Name3", "UserName", "LoginId3")); RoleService.AssertWasCalled(a => a.GetVisibleByUser("Name3", "UserName")); PermissionRepository.AssertWasNotCalled(a => a.EnsurePersistent(Arg <Permission> .Is.Anything)); #endregion Assert }
public void TestAddPermissionThrowsExceptionIfloginIdDuplicate() { try { #region Arrange Controller.ControllerContext.HttpContext = new MockHttpContext(1, new[] { "" }); ControllerRecordFakes.FakeApplications(3, ApplicationRepository); ControllerRecordFakes.FakeRoles(5, RoleRepository); var users = new List <User> { CreateValidEntities.User(1), CreateValidEntities.User(1) }; ControllerRecordFakes.FakeUsers(3, UserRepository, users); ControllerRecordFakes.FakePermissions(1, PermissionRepository); RoleService.Expect(a => a.GetVisibleByUser("Name2", "UserName")).Return(RoleRepository.Queryable).Repeat.Any(); UserService.Expect(a => a.CanUserManageGivenLogin("Name2", "UserName", "LoginId1")).Return(true).Repeat.Any(); PermissionRepository.Expect(a => a.EnsurePersistent(Arg <Permission> .Is.Anything)).Repeat.Any(); #endregion Arrange #region Act Controller.AddPermission("Name2", "LoginId1", 3); #endregion Act } catch (Exception ex) { #region Assert Assert.IsNotNull(ex); Assert.AreEqual("Sequence contains more than one element", ex.Message); UserService.AssertWasCalled(a => a.CanUserManageGivenLogin("Name2", "UserName", "LoginId1")); RoleService.AssertWasCalled(a => a.GetVisibleByUser("Name2", "UserName")); PermissionRepository.AssertWasNotCalled(a => a.EnsurePersistent(Arg <Permission> .Is.Anything)); #endregion Assert throw; } }
public void TestRemovePermissionThrowsExceptionPermissionNotUnique() { try { #region Arrange Controller.ControllerContext.HttpContext = new MockHttpContext(1, new[] { "" }); ControllerRecordFakes.FakeApplications(3, ApplicationRepository); ControllerRecordFakes.FakeUsers(3, UserRepository); ControllerRecordFakes.FakeRoles(5, RoleRepository); var permissions = new List <Permission>(); for (int i = 0; i < 3; i++) { permissions.Add(CreateValidEntities.Permission(i + 1)); permissions[i].User = UserRepository.GetNullableById(1); permissions[i].Application = ApplicationRepository.GetNullableById(2); permissions[i].Role = RoleRepository.GetNullableById(i + 1); } permissions[1].Role = RoleRepository.GetNullableById(1); ControllerRecordFakes.FakePermissions(1, PermissionRepository, permissions); UserService.Expect(a => a.CanUserManageGivenLogin("Name2", "UserName", "LoginId1")).Return(true).Repeat.Any(); RoleService.Expect(a => a.GetVisibleByUser("Name2", "UserName")).Return(RoleRepository.Queryable).Repeat.Any(); PermissionRepository.Expect(a => a.Remove(Arg <Permission> .Is.Anything)).Repeat.Any(); #endregion Arrange #region Act Controller.RemovePermission("Name2", "LoginId1", 1); #endregion Act } catch (Exception ex) { #region Assert Assert.IsNotNull(ex); Assert.AreEqual("Sequence contains more than one element", ex.Message); UserService.AssertWasCalled(a => a.CanUserManageGivenLogin("Name2", "UserName", "LoginId1")); RoleService.AssertWasCalled(a => a.GetVisibleByUser("Name2", "UserName")); PermissionRepository.AssertWasNotCalled(a => a.Remove(Arg <Permission> .Is.Anything)); #endregion Assert throw; } }
public void TestRemovePermissionThrowsExceptionIfCurrentUserDoesNotHaveRights1() { try { #region Arrange Controller.ControllerContext.HttpContext = new MockHttpContext(1, new[] { "" }); ControllerRecordFakes.FakeApplications(3, ApplicationRepository); ControllerRecordFakes.FakeUsers(3, UserRepository); ControllerRecordFakes.FakeRoles(5, RoleRepository); var permissions = new List <Permission>(); for (int i = 0; i < 3; i++) { permissions.Add(CreateValidEntities.Permission(i + 1)); permissions[i].User = UserRepository.GetNullableById(1); permissions[i].Application = ApplicationRepository.GetNullableById(2); permissions[i].Role = RoleRepository.GetNullableById(i + 1); } permissions[1].Role = RoleRepository.GetNullableById(4); ControllerRecordFakes.FakePermissions(1, PermissionRepository, permissions); UserService.Expect(a => a.CanUserManageGivenLogin("Name2", "UserName", "LoginId1")).Return(false).Repeat.Any(); PermissionRepository.Expect(a => a.Remove(Arg <Permission> .Is.Anything)).Repeat.Any(); #endregion Arrange #region Act Controller.RemovePermission("Name2", "LoginId1", 4); #endregion Act } catch (Exception ex) { #region Assert Assert.IsNotNull(ex); Assert.AreEqual("UserName does not have access to manage LoginId1 within the Name2 application", ex.Message); UserService.AssertWasCalled(a => a.CanUserManageGivenLogin("Name2", "UserName", "LoginId1")); PermissionRepository.AssertWasNotCalled(a => a.Remove(Arg <Permission> .Is.Anything)); #endregion Assert throw; } }
public void TestInsertNewUserReturnsExpectedValue3() { #region Arrange const string applicationName = "Name2"; var users = new List <User>(); users.Add(CreateValidEntities.User(4)); ControllerRecordFakes.FakeUsers(0, UserRepository, users); AutomapperConfig.Configure(); var serviceUser = CreateValidEntities.ServiceUser(4); ControllerRecordFakes.FakeApplications(3, ApplicationRepository); ControllerRecordFakes.FakeRoles(3, RoleRepository); ControllerRecordFakes.FakeUnits(3, UnitRepository); var permissions = new List <Permission>(); permissions.Add(CreateValidEntities.Permission(1)); permissions[0].Application = ApplicationRepository.GetNullableById(2); permissions[0].User = users[0]; permissions[0].Role = RoleRepository.GetNullableById(3); permissions.Add(CreateValidEntities.Permission(2)); permissions[1].Application = ApplicationRepository.GetNullableById(2); permissions[1].User = users[0]; permissions[1].Role = RoleRepository.GetNullableById(1); ControllerRecordFakes.FakePermissions(0, PermissionRepository, permissions); var unitAssociations = new List <UnitAssociation>(); unitAssociations.Add(CreateValidEntities.UnitAssociation(1)); unitAssociations[0].Application = ApplicationRepository.GetNullableById(2); unitAssociations[0].User = users[0]; unitAssociations[0].Unit = UnitRepository.GetNullableById(2); unitAssociations.Add(CreateValidEntities.UnitAssociation(2)); unitAssociations[1].Application = ApplicationRepository.GetNullableById(2); unitAssociations[1].User = users[0]; unitAssociations[1].Unit = UnitRepository.GetNullableById(1); ControllerRecordFakes.FakeUnitAssociations(0, UnitAssociationRepository, unitAssociations); #endregion Arrange #region Act var result = Controller.InsertNewUser(applicationName, serviceUser, 3, 2) .AssertResultIs <JsonResult>(); #endregion Act #region Assert Assert.IsNotNull(result); var result2 = (ServiceUser)result.Data; Assert.IsNotNull(result2); Assert.AreEqual("*****@*****.**", result2.Email); Assert.AreEqual("FirstName4", result2.FirstName); Assert.AreEqual("LastName4", result2.LastName); Assert.AreEqual("LoginId4", result2.Login); Assert.AreEqual("+1 530 755 7777", result2.Phone); Assert.AreEqual("Name1, Name3", result2.Roles); Assert.AreEqual("ShortName1, ShortName2", result2.Units); UserRepository.AssertWasNotCalled(a => a.EnsurePersistent(Arg <User> .Is.Anything)); PermissionRepository.AssertWasNotCalled(a => a.EnsurePersistent(Arg <Permission> .Is.Anything)); UnitAssociationRepository.AssertWasNotCalled(a => a.EnsurePersistent(Arg <UnitAssociation> .Is.Anything)); #endregion Assert }