public void TestAddPermission()
        {
            #region Arrange
            Controller.ControllerContext.HttpContext = new MockHttpContext(1, new[] { "" });
            ControllerRecordFakes.FakeRoles(5, RoleRepository);
            ControllerRecordFakes.FakeApplications(3, ApplicationRepository);
            ControllerRecordFakes.FakeUsers(3, UserRepository);
            ControllerRecordFakes.FakePermissions(1, PermissionRepository);

            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.AssertWasCalled(a => a.EnsurePersistent(Arg <Permission> .Is.Anything));
            var args = (Permission)PermissionRepository.GetArgumentsForCallsMadeOn(a => a.EnsurePersistent(Arg <Permission> .Is.Anything))[0][0];
            Assert.IsNotNull(args);
            Assert.AreEqual("Name2", args.Role.Name);
            Assert.AreEqual("LoginId3", args.User.LoginId);
            Assert.AreEqual("Name3", args.Application.ToString());
            Assert.IsFalse(args.Inactive);
            #endregion Assert
        }
Exemple #2
0
        public void TestInsertNewUserReturnsExpectedValue1()
        {
            #region Arrange
            const string applicationName = "Name2";
            ControllerRecordFakes.FakeUsers(3, UserRepository);
            AutomapperConfig.Configure();
            var serviceUser = CreateValidEntities.ServiceUser(4);
            ControllerRecordFakes.FakeApplications(3, ApplicationRepository);
            ControllerRecordFakes.FakeRoles(3, RoleRepository);
            ControllerRecordFakes.FakeUnits(3, UnitRepository);
            ControllerRecordFakes.FakePermissions(3, PermissionRepository);
            ControllerRecordFakes.FakeUnitAssociations(3, UnitAssociationRepository);
            #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);

            UserRepository.AssertWasCalled(a => a.EnsurePersistent(Arg <User> .Is.Anything));
            var userArgs = (User)UserRepository.GetArgumentsForCallsMadeOn(a => a.EnsurePersistent(Arg <User> .Is.Anything))[0][0];
            Assert.AreEqual("*****@*****.**", userArgs.Email);
            Assert.AreEqual("FirstName4", userArgs.FirstName);
            Assert.IsFalse(userArgs.Inactive);
            Assert.AreEqual("LastName4", userArgs.LastName);
            Assert.AreEqual("LoginId4", userArgs.LoginId);
            Assert.AreEqual("+1 530 755 7777", userArgs.Phone);

            PermissionRepository.AssertWasCalled(a => a.EnsurePersistent(Arg <Permission> .Is.Anything));
            var permissionArgs = (Permission)PermissionRepository.GetArgumentsForCallsMadeOn(a => a.EnsurePersistent(Arg <Permission> .Is.Anything))[0][0];
            Assert.IsNotNull(permissionArgs);
            Assert.AreEqual(applicationName, permissionArgs.Application.ToString());
            Assert.AreEqual("Name3", permissionArgs.Role.Name);
            Assert.IsFalse(permissionArgs.Inactive);
            Assert.AreEqual(userArgs.LoginId, permissionArgs.User.LoginId);

            UnitAssociationRepository.AssertWasCalled(a => a.EnsurePersistent(Arg <UnitAssociation> .Is.Anything));
            var unitAssociationArgs = (UnitAssociation)UnitAssociationRepository.GetArgumentsForCallsMadeOn(a => a.EnsurePersistent(Arg <UnitAssociation> .Is.Anything))[0][0];
            Assert.IsNotNull(unitAssociationArgs);
            Assert.AreEqual(applicationName, unitAssociationArgs.Application.ToString());
            Assert.AreEqual("ShortName2", unitAssociationArgs.Unit.ShortName);
            Assert.IsFalse(unitAssociationArgs.Inactive);
            Assert.AreEqual(userArgs.LoginId, unitAssociationArgs.User.LoginId);

            #endregion Assert
        }
        public void TestRemovePermission()
        {
            #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(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", 4);
            #endregion Act

            #region Assert
            UserService.AssertWasCalled(a => a.CanUserManageGivenLogin("Name2", "UserName", "LoginId1"));
            RoleService.AssertWasCalled(a => a.GetVisibleByUser("Name2", "UserName"));
            PermissionRepository.AssertWasCalled(a => a.Remove(Arg <Permission> .Is.Anything));
            var args = (Permission)PermissionRepository.GetArgumentsForCallsMadeOn(a => a.Remove(Arg <Permission> .Is.Anything))[0][0];
            Assert.IsNotNull(args);
            Assert.AreEqual("Name4", args.Role.Name);
            Assert.AreEqual("LoginId1", args.User.LoginId);
            Assert.AreEqual("Name2", args.Application.ToString());
            #endregion Assert
        }
 public void Should_load_any_available_permission_for_the_user_and_action()
 {
     PermissionRepository.AssertWasCalled(r => r.GetPermissionsByUserWithRoles(_user, _action));
 }