public void GET_Create_UsesCreateOutputModel() { // Arrange var roleManager = new RoleManagerController(); var builder = new TestControllerBuilder(); builder.InitializeController(roleManager); roleManager.CreateOutputModel = new RoleManagerCreateOutputModel( ); // act var result = roleManager.Create(); // Assert Assert.IsInstanceOf<ViewResult>(result); var viewResult = result as ViewResult; var model = viewResult.ViewData.Model; Assert.IsInstanceOf<RoleManagerCreateOutputModel>(model); }
public void GET_Edit_Loads_Role_By_Id() { var fakeRole = MockRepository.GenerateMock<Role>(); fakeRole.Expect(f => f.Description).Return("The glorious role"); fakeRole.Expect(f => f.Name).Return("glorious"); fakeRole.Expect(f => f.Id).Return(Guid.Parse("CF6C6EDA-F16B-11DF-A057-E112E0D72085")); fakeRole.Expect(f => f.Functions).Return(new Permission[] { }); var roleManager = new RoleManagerController(); var builder = new TestControllerBuilder(); builder.InitializeController(roleManager); var queryRoles = MockRepository.GenerateMock<IQueryService<Role>>(); queryRoles.Expect(q => q.Load(fakeRole.Id)).Return(fakeRole); var queryFunctions = MockRepository.GenerateMock<IQueryService<Permission>>(); queryFunctions.Expect(q=>q.Query()).Return(new Permission[]{}.AsQueryable()); var queryFunction = MockRepository.GenerateMock<IQueryService<Permission>>(); queryFunction.Expect(f => f.Query()).Return(new Permission[] { }.AsQueryable()); // setup dependencies roleManager.EditOutputModel = new RoleManagerEditOutput(queryRoles, queryFunctions ); // Act var result = roleManager.Edit(fakeRole.Id); // Assert queryRoles.VerifyAllExpectations(); queryFunctions.VerifyAllExpectations(); Assert.IsInstanceOf<ViewResult>(result); var viewResult = result as ViewResult; Assert.IsInstanceOf<RoleManagerEditOutput>(viewResult.ViewData.Model); var model = viewResult.ViewData.Model as RoleManagerEditOutput; Assert.AreEqual(model.Role, fakeRole); }
public void RemoveFunctionFromRole_Updates_Role_AndRemoves_Function() { var functionGuid = Guid.Parse("CF6C6EDA-F16B-11DF-A057-E112E0D72085"); var roleGuid = Guid.Parse("CF6C6EDA-F16B-11DF-A057-E112E0D72084"); var roleMan = new RoleManagerController(); var queryRoles = MockRepository.GenerateMock<IQueryService<Role>>(); var queryFunction = MockRepository.GenerateMock<IQueryService<Permission>>(); var updateRole = MockRepository.GenerateMock<ISaveOrUpdateCommand<Role>>(); var fakeRole = MockRepository.GenerateMock<Role>(); var fakeFunction = MockRepository.GenerateMock<Permission>(); var assignModel = new RoleManagerUnAssignModel( queryRoles, queryFunction, updateRole ); queryRoles.Expect(q => q.Load(roleGuid)).Return(fakeRole); queryFunction.Expect(q => q.Load(functionGuid)).Return(fakeFunction); fakeRole.Expect(f => f.RemoveFunction(Arg<Permission>.Matches(p => p.Id == functionGuid))); fakeFunction.Expect(f => f.Id).Return(functionGuid); updateRole.Expect(s => s.Execute(fakeRole)); // act assignModel.RemoveFunctionFromRole(functionGuid, roleGuid); // assert fakeRole.VerifyAllExpectations(); fakeFunction.VerifyAllExpectations(); queryRoles.VerifyAllExpectations(); queryFunction.VerifyAllExpectations(); updateRole.VerifyAllExpectations(); }
public void POST_UnAssing_Removes_A_FunctionRight_From_Role() { var functionGuid = Guid.Parse("CF6C6EDA-F16B-11DF-A057-E112E0D72085"); var roleGuid = Guid.Parse("CF6C6EDA-F16B-11DF-A057-E112E0D72084"); var roleMan = new RoleManagerController(); var unAssignModel = MockRepository.GenerateStub<RoleManagerUnAssignModel>( MockRepository.GenerateStub<IQueryService<Role>>(), MockRepository.GenerateStub<IQueryService<Permission>>(), MockRepository.GenerateStub<ISaveOrUpdateCommand<Role>>()); unAssignModel.Expect(f => f.RemoveFunctionFromRole(functionGuid, roleGuid)); roleMan.UnAssignModel = unAssignModel; var result = roleMan.UnAssign(functionGuid, roleGuid); Assert.IsNotNull(result); unAssignModel.VerifyAllExpectations(); }
public void POST_Create_Saves_NewRole() { const string ROLE_DESCRIPTION = " The glorious user role"; const string ROLE_NAME = "Glorious"; const string INFO_KEY = "info"; // Arrange var saveOrUpdateCommand = MockRepository.GenerateMock<ISaveOrUpdateCommand<Role>>(); saveOrUpdateCommand .Expect(c => c.Execute(Arg<Role>.Matches( p => p.Description == ROLE_DESCRIPTION && p.Name == ROLE_NAME))); var roleManager = new RoleManagerController(); var builder = new TestControllerBuilder(); builder.InitializeController(roleManager); roleManager.CreateOutputModel = new RoleManagerCreateOutputModel( ); roleManager.SaveOrUpdate = saveOrUpdateCommand; var inputModel = new RoleManagerCreateInputModel { Role = new RoleManagerCreateInputModel.RoleModel { Description = ROLE_DESCRIPTION, Name = ROLE_NAME } }; // act var result = roleManager.Create(inputModel); // Assert Assert.IsInstanceOf<RedirectToRouteResult>(result); var viewResult = result as RedirectToRouteResult; Assert.AreEqual("List", viewResult.RouteValues["Action"]); saveOrUpdateCommand.VerifyAllExpectations(); Assert.IsTrue(builder.TempDataDictionary.ContainsKey(INFO_KEY)); Assert.IsTrue( builder.TempDataDictionary[INFO_KEY].ToString().Contains("Role")); }
public void POST_Assign_Adds_A_NewFunctionRight_To_Role() { var functionGuid = Guid.Parse("CF6C6EDA-F16B-11DF-A057-E112E0D72085"); var roleGuid = Guid.Parse("CF6C6EDA-F16B-11DF-A057-E112E0D72084"); var roleMan = new RoleManagerController(); var assignModel = MockRepository.GenerateStub<RoleManagerAssignModel>( MockRepository.GenerateStub<IQueryService<Role>>(), MockRepository.GenerateStub<IQueryService<Permission>>(), MockRepository.GenerateStub<ISaveOrUpdateCommand<Role>>()); assignModel.Expect(f => f.LinkFunctionToRole(functionGuid, roleGuid)); roleMan.AssignModel = assignModel; var result = roleMan.Assign(functionGuid, roleGuid); Assert.IsNotNull(result); assignModel.VerifyAllExpectations(); }
public void GET_List_ListOutputModel_RetrievesInfoString_From_TempData_InfoKey() { const string INFORMATION = "Information"; const string INFO_KEY = "info"; // Arrange var roleManager = new RoleManagerController(); var builder = new TestControllerBuilder(); builder.TempDataDictionary.Add(INFO_KEY, INFORMATION); builder.InitializeController(roleManager); var queryRoles = MockRepository.GenerateMock<IQueryService<Role>>(); queryRoles.Expect(q => q.Query()).Return(new Role[] { }.AsQueryable()); roleManager.ListOutputModel = new RoleManagerListOutputModel( queryRoles ); // act var result = roleManager.List(); // Assert Assert.IsInstanceOf<ViewResult>(result); var viewResult = result as ViewResult; var model = viewResult.ViewData.Model; Assert.IsInstanceOf<RoleManagerListOutputModel>(model); var viewModel = model as RoleManagerListOutputModel; Assert.AreEqual(viewModel.InfoMessage, INFORMATION); queryRoles.VerifyAllExpectations(); }
public void GET_List_Has_ListOutputModel_RequestsRoles() { // Arrange var roleManager = new RoleManagerController(); var builder = new TestControllerBuilder(); builder.InitializeController(roleManager); var queryRoles = MockRepository.GenerateMock<IQueryService<Role>>(); queryRoles.Expect(q => q.Query()).Return(new Role[] { }.AsQueryable()); roleManager.ListOutputModel = new RoleManagerListOutputModel( queryRoles ); // act var result = roleManager.List(); // Assert Assert.IsInstanceOf< ViewResult>(result); var viewResult = result as ViewResult; var model = viewResult.ViewData.Model; Assert.IsInstanceOf<RoleManagerListOutputModel>(model); queryRoles.VerifyAllExpectations(); }
public void GET_Edit_RedirectsToHome_When_IdNotFound() { var queryRoles = MockRepository.GenerateMock<IQueryService<Role>>(); queryRoles.Expect(c => c.Load(Arg<Guid>.Is.Anything)).IgnoreArguments().Return(null); var roleManager = new RoleManagerController(); roleManager.EditOutputModel = new RoleManagerEditOutput(queryRoles, null); var result = roleManager.Edit( Guid.Parse("CF6C6EDA-F16B-11DF-A057-E112E0D72085") ); Assert.IsInstanceOf<RedirectToRouteResult>(result); var redirect2Root = result as RedirectToRouteResult; Assert.AreEqual("Index", redirect2Root.RouteValues["action"]); Assert.AreEqual("Home", redirect2Root.RouteValues["controller"]); }
public void GET_Edit_RedirectsToHome_WhenNoId_IsSupplied() { var roleManager = new RoleManagerController(); var result = roleManager.Edit(Guid.Empty); Assert.IsInstanceOf<RedirectToRouteResult>(result); var redirect2Root = result as RedirectToRouteResult; Assert.AreEqual("Index", redirect2Root.RouteValues["action"]); Assert.AreEqual("Home", redirect2Root.RouteValues["controller"]); }