public async Task Details_WithCorrectUsername_ShouldReturnValidViewModel() { //Arrange IQueryable <IdentityRole> roles = new List <IdentityRole>() { new IdentityRole("firstRole"), new IdentityRole("secondRole"), new IdentityRole("thirdRole") }.AsQueryable(); Mock <RoleManager <IdentityRole> > roleManager = RoleManagerMock.New(); roleManager .Setup(r => r.Roles) .Returns(roles); Mock <UserManager <User> > userManager = UserManagerMock.New(); userManager .Setup(u => u.FindByNameAsync(username)) .ReturnsAsync(user); userManager .Setup(u => u.GetRolesAsync(user)) .ReturnsAsync(new List <string>() { "firstRole", "secondRole", "thirdRole" }); Mock <IAdminUserService> adminUserService = new Mock <IAdminUserService>(); adminUserService .Setup(a => a.GetDetailsByUsernameAsync(username)) .ReturnsAsync(new AdminUserDetailsServiceModel()); UsersController usersController = new UsersController(roleManager.Object, userManager.Object, adminUserService.Object, null, null); //Assert var result = await usersController.Details(username); //Assert result.Should().BeOfType <ViewResult>(); result.As <ViewResult>().Model.Should().BeOfType <AdminUserDetailsServiceModel>(); AdminUserDetailsServiceModel model = result.As <ViewResult>().Model.As <AdminUserDetailsServiceModel>(); model.CurrentRoles.First().Text.Should().Be(roles.First().Name); model.CurrentRoles.First().Value.Should().Be(roles.First().Name); model.CurrentRoles.Last().Text.Should().Be(roles.Last().Name); model.CurrentRoles.Last().Value.Should().Be(roles.Last().Name); model.AllRoles.Should().HaveCount(0); }
public async Task GetDetailsByUsernameAsync_WithUsername_ShouldReturnValidServiceModel() { // Arrange FitStoreDbContext database = this.Database; DatabaseHelper.SeedData(database); IAdminUserService adminUserService = new AdminUserService(database); // Act AdminUserDetailsServiceModel result = await adminUserService.GetDetailsByUsernameAsync(firstUsername); // Assert result.Username.Should().Be(firstUsername); result.Address.Should().Be(firstAddress); result.Email.Should().Be(firstEmail); }
public async Task <IActionResult> Details(string username) { User user = await this.userManager.FindByNameAsync(username); if (user == null) { TempData.AddErrorMessage(string.Format(EntityNotFound, UserEntity)); return(this.RedirectToAction(nameof(Index))); } AdminUserDetailsServiceModel model = await this.adminUserService.GetDetailsByUsernameAsync(username); IList <string> currentRolesAsString = await this.userManager.GetRolesAsync(user); IEnumerable <SelectListItem> currentRoles = this.roleManager .Roles .Where(r => currentRolesAsString.Contains(r.Name)) .Select(r => new SelectListItem { Value = r.Name, Text = r.Name }) .ToList(); IEnumerable <SelectListItem> allRoles = this.roleManager .Roles .Where(r => !currentRolesAsString.Contains(r.Name)) .Select(r => new SelectListItem { Value = r.Name, Text = r.Name }) .ToList(); model.CurrentRoles = currentRoles; model.AllRoles = allRoles; return(View(model)); }