public async void HandleAsync_WithOrderByRoleAscending_ReturnsSortedResults() { // Arrage var filter = fixture.Create <UserFilter>(); IFindMatchingUsersDataAccess dataAccess = CreateFakeDataAccess(filter); IWeeeAuthorization authorization = AuthorizationBuilder.CreateUserWithAllRights(); FindMatchingUsersHandler handler = new FindMatchingUsersHandler(authorization, dataAccess); FindMatchingUsers request = new FindMatchingUsers(1, 1000, FindMatchingUsers.OrderBy.RoleAscending, filter); // Act UserSearchDataResult response = await handler.HandleAsync(request); // Check the first and last results have the correct roles. Assert.NotNull(response); Assert.Equal(10, response.Results.Count); Assert.Collection(response.Results, u => Assert.Equal("User 3", u.Id), u => Assert.Equal("User 5", u.Id), u => Assert.Equal("User 4", u.Id), u => Assert.Equal("User 2", u.Id), u => Assert.Equal("User 1", u.Id), u => Assert.Equal("User 6", u.Id), u => Assert.Equal("User 8", u.Id), u => Assert.Equal("User 10", u.Id), u => Assert.Equal("User 7", u.Id), u => Assert.Equal("User 9", u.Id)); }
private async Task <ManageUsersViewModel> GetManageUsersViewModel(FindMatchingUsers.OrderBy orderBy, int page, FilteringViewModel filter = null) { SetBreadcrumb(); if (page < 1) { page = 1; } var model = new ManageUsersViewModel(); using (var client = apiClient()) { var mappedFilter = mapper.Map <UserFilter>(filter); var query = new FindMatchingUsers(page, DefaultPageSize, orderBy, mappedFilter); var usersSearchResultData = await client.SendAsync(User.GetAccessToken(), query); model.Users = usersSearchResultData.Results.ToPagedList(page - 1, DefaultPageSize, usersSearchResultData.UsersCount); model.OrderBy = orderBy; model.Filter = filter ?? new FilteringViewModel(); } return(model); }
public async Task<ActionResult> Index(ManageUsersViewModel model, FindMatchingUsers.OrderBy orderBy = FindMatchingUsers.OrderBy.FullNameAscending, int page = 1) { if (!ModelState.IsValid) { return await Index(orderBy, page); } return RedirectToAction("View", new { id = model.SelectedUserId }); }
public async void FindMatchingUsersHandler_WithFullNameAscendingOrdering_ReturnsResultsSortedByFullName() { // Arrage var filter = fixture.Create <UserFilter>(); IFindMatchingUsersDataAccess dataAccess = CreateFakeDataAccess(filter); IWeeeAuthorization authorization = AuthorizationBuilder.CreateUserWithAllRights(); FindMatchingUsersHandler handler = new FindMatchingUsersHandler(authorization, dataAccess); FindMatchingUsers request = new FindMatchingUsers(1, 1000, FindMatchingUsers.OrderBy.FullNameAscending, filter); // Act var response = await handler.HandleAsync(request); // Check the first and last results have the correct IDs. Assert.NotNull(response); Assert.Equal("AGF GUI", response.Results.First().FullName); Assert.Equal("YGR FTW", response.Results.Last().FullName); }
public async void FindMatchingUsersHandler_WithInternalUser_DoesntThrowException() { // Arrage IFindMatchingUsersDataAccess dataAccess = CreateFakeDataAccess(); IWeeeAuthorization authorization = new AuthorizationBuilder() .AllowInternalAreaAccess() .Build(); FindMatchingUsersHandler handler = new FindMatchingUsersHandler(authorization, dataAccess); FindMatchingUsers request = new FindMatchingUsers(1, 1, FindMatchingUsers.OrderBy.FullNameAscending); // Act await handler.HandleAsync(request); // Assert // no exception }
public async void FindMatchingUsersHandler_WithNonInternalUser_ThrowSecurityException(AuthorizationBuilder.UserType userType) { // Arrage IFindMatchingUsersDataAccess dataAccess = A.Fake<IFindMatchingUsersDataAccess>(); A.CallTo(() => dataAccess.GetOrganisationUsers()).Returns(new UserSearchData[5]); A.CallTo(() => dataAccess.GetCompetentAuthorityUsers()).Returns(new UserSearchData[5]); IWeeeAuthorization authorization = AuthorizationBuilder.CreateFromUserType(userType); FindMatchingUsersHandler handler = new FindMatchingUsersHandler(authorization, dataAccess); FindMatchingUsers request = new FindMatchingUsers(1, 1, FindMatchingUsers.OrderBy.FullNameAscending); // Act Func<Task<UserSearchDataResult>> action = () => handler.HandleAsync(request); // Assert await Assert.ThrowsAsync<SecurityException>(action); }
public async void FindMatchingUsersHandler_WithInternalUser_DoesntThrowException() { // Arrage var filter = fixture.Create <UserFilter>(); IFindMatchingUsersDataAccess dataAccess = CreateFakeDataAccess(filter); IWeeeAuthorization authorization = new AuthorizationBuilder() .AllowInternalAreaAccess() .Build(); FindMatchingUsersHandler handler = new FindMatchingUsersHandler(authorization, dataAccess); FindMatchingUsers request = new FindMatchingUsers(1, 1, FindMatchingUsers.OrderBy.FullNameAscending, filter); // Act await handler.HandleAsync(request); // Assert // no exception }
public async void FindMatchingUsersHandler_WithNonInternalUser_ThrowSecurityException(AuthorizationBuilder.UserType userType) { // Arrage IFindMatchingUsersDataAccess dataAccess = A.Fake <IFindMatchingUsersDataAccess>(); var filter = fixture.Create <UserFilter>(); A.CallTo(() => dataAccess.GetOrganisationUsers(filter)).Returns(new UserSearchData[5]); A.CallTo(() => dataAccess.GetCompetentAuthorityUsers(filter)).Returns(new UserSearchData[5]); IWeeeAuthorization authorization = AuthorizationBuilder.CreateFromUserType(userType); FindMatchingUsersHandler handler = new FindMatchingUsersHandler(authorization, dataAccess); FindMatchingUsers request = new FindMatchingUsers(1, 1, FindMatchingUsers.OrderBy.FullNameAscending, filter); // Act Func <Task <UserSearchDataResult> > action = () => handler.HandleAsync(request); // Assert await Assert.ThrowsAsync <SecurityException>(action); }
public async void FindMatchingUsersHandler_RequestingSpecificPage_ReturnsCorrectNumberOfResults() { // Arrage var filter = fixture.Create <UserFilter>(); IFindMatchingUsersDataAccess dataAccess = CreateFakeDataAccess(filter); IWeeeAuthorization authorization = AuthorizationBuilder.CreateUserWithAllRights(); FindMatchingUsersHandler handler = new FindMatchingUsersHandler(authorization, dataAccess); // Page 2, where each page has 3 results. FindMatchingUsers request = new FindMatchingUsers(2, 3, FindMatchingUsers.OrderBy.FullNameAscending, filter); // Act var response = await handler.HandleAsync(request); // Assert - Check that there are 10 users in total. Assert.NotNull(response); Assert.Equal(10, response.UsersCount); // Assert - We asked for page 2 with 3 results, so check that only 3 results are returned. Assert.NotNull(response.Results); Assert.Equal(3, response.Results.Count); }
public async Task<ActionResult> Index(FindMatchingUsers.OrderBy orderBy = FindMatchingUsers.OrderBy.FullNameAscending, int page = 1) { SetBreadcrumb(); if (page < 1) { page = 1; } using (var client = apiClient()) { FindMatchingUsers query = new FindMatchingUsers(page, DefaultPageSize, orderBy); UserSearchDataResult usersSearchResultData = await client.SendAsync(User.GetAccessToken(), query); ManageUsersViewModel model = new ManageUsersViewModel(); model.Users = usersSearchResultData.Results.ToPagedList(page - 1, DefaultPageSize, usersSearchResultData.UsersCount); model.OrderBy = orderBy; return View(model); } }
public async void FindMatchingUsersHandler_RequestingSpecificPage_ReturnsCorrectNumberOfResults() { // Arrage IFindMatchingUsersDataAccess dataAccess = CreateFakeDataAccess(); IWeeeAuthorization authorization = AuthorizationBuilder.CreateUserWithAllRights(); FindMatchingUsersHandler handler = new FindMatchingUsersHandler(authorization, dataAccess); // Page 2, where each page has 3 results. FindMatchingUsers request = new FindMatchingUsers(2, 3, FindMatchingUsers.OrderBy.FullNameAscending); // Act var response = await handler.HandleAsync(request); // Assert - Check that there are 10 users in total. Assert.NotNull(response); Assert.Equal(10, response.UsersCount); // Assert - We asked for page 2 with 3 results, so check that only 3 results are returned. Assert.NotNull(response.Results); Assert.Equal(3, response.Results.Count); }
public async void HandleAsync_WithOrderByRoleAscending_ReturnsSortedResults() { // Arrage IFindMatchingUsersDataAccess dataAccess = CreateFakeDataAccess(); IWeeeAuthorization authorization = AuthorizationBuilder.CreateUserWithAllRights(); FindMatchingUsersHandler handler = new FindMatchingUsersHandler(authorization, dataAccess); FindMatchingUsers request = new FindMatchingUsers(1, 1000, FindMatchingUsers.OrderBy.RoleAscending); // Act UserSearchDataResult response = await handler.HandleAsync(request); // Check the first and last results have the correct roles. Assert.NotNull(response); Assert.Equal(10, response.Results.Count); Assert.Collection(response.Results, u => Assert.Equal("User 3", u.Id), u => Assert.Equal("User 5", u.Id), u => Assert.Equal("User 4", u.Id), u => Assert.Equal("User 2", u.Id), u => Assert.Equal("User 1", u.Id), u => Assert.Equal("User 6", u.Id), u => Assert.Equal("User 8", u.Id), u => Assert.Equal("User 10", u.Id), u => Assert.Equal("User 7", u.Id), u => Assert.Equal("User 9", u.Id)); }
public async void FindMatchingUsersHandler_WithFullNameAscendingOrdering_ReturnsResultsSortedByFullName() { // Arrage IFindMatchingUsersDataAccess dataAccess = CreateFakeDataAccess(); IWeeeAuthorization authorization = AuthorizationBuilder.CreateUserWithAllRights(); FindMatchingUsersHandler handler = new FindMatchingUsersHandler(authorization, dataAccess); FindMatchingUsers request = new FindMatchingUsers(1, 1000, FindMatchingUsers.OrderBy.FullNameAscending); // Act var response = await handler.HandleAsync(request); // Check the first and last results have the correct IDs. Assert.NotNull(response); Assert.Equal("AGF GUI", response.Results.First().FullName); Assert.Equal("YGR FTW", response.Results.Last().FullName); }