public void GetAccessRequest_Success() { // Arrange var user = PrincipalHelper.CreateForRole(); var helper = new TestHelper(); var controller = helper.CreateController <AccessRequestController>(user); var service = helper.GetService <Mock <IPimsRepository> >(); var mapper = helper.GetService <IMapper>(); var accessRequest = EntityHelper.CreateAccessRequest(1); service.Setup(m => m.AccessRequest.Get(It.IsAny <long>())).Returns(accessRequest); var model = mapper.Map <Model.AccessRequestModel>(accessRequest); // Act var result = controller.GetAccessRequest(1); // Assert var actionResult = Assert.IsType <JsonResult>(result); var actualResult = Assert.IsType <Model.AccessRequestModel>(actionResult.Value); Assert.Equal(model, actualResult, new ShallowPropertyCompare()); Assert.Equal(model.RoleId, actualResult.RoleId, new DeepPropertyCompare()); Assert.Equal(model.User.Id, actualResult.User.Id); service.Verify(m => m.AccessRequest.Get(1), Times.Once()); }
public async void UpdateRoleAsync_Success() { // Arrange var user = PrincipalHelper.CreateForRole("admin-users"); var helper = new TestHelper(); var controller = helper.CreateController <RoleController>(user); var mapper = helper.GetService <IMapper>(); var service = helper.GetService <Mock <IPimsKeycloakService> >(); var erole = new Entity.PimsRole(Guid.NewGuid(), "test") { Description = "description" }; service.Setup(m => m.UpdateRoleAsync(It.IsAny <Entity.PimsRole>())).Returns(Task.FromResult(erole)); var model = mapper.Map <Model.Update.RoleModel>(erole); // Act var result = await controller.UpdateRoleAsync(erole.RoleUid, model); // Assert var actionResult = Assert.IsType <JsonResult>(result); var actualResult = Assert.IsType <Model.RoleModel>(actionResult.Value); var expectedResult = mapper.Map <Model.RoleModel>(erole); Assert.Equal(expectedResult.Id, actualResult.Id); Assert.Equal(expectedResult.Name, actualResult.Name); Assert.Equal(expectedResult.Description, actualResult.Description); service.Verify(m => m.UpdateRoleAsync(It.IsAny <Entity.PimsRole>()), Times.Once()); }
public async void AddAccessRequestAsync_InvalidAgencies_BadRequest() { // Arrange var user = PrincipalHelper.CreateForRole(); var helper = new TestHelper(); var controller = helper.CreateController <UserController>(user); var service = helper.GetService <Mock <IPimsService> >(); var mapper = helper.GetService <IMapper>(); service.Setup(m => m.User.AddAccessRequest(It.IsAny <Entity.AccessRequest>())); var accessRequest = new Model.AccessRequestModel() { Agencies = new List <Model.AccessRequestAgencyModel>(), Roles = new List <Model.AccessRequestRoleModel>(new[] { new Model.AccessRequestRoleModel() }) }; var model = mapper.Map <Model.AccessRequestModel>(accessRequest); // Act // Assert await Assert.ThrowsAsync <BadRequestException>(async() => await controller.AddAccessRequestAsync(model)); service.Verify(m => m.User.AddAccessRequest(It.IsAny <Entity.AccessRequest>()), Times.Never()); }
public async void AddAccessRequest_Success() { // Arrange var user = PrincipalHelper.CreateForRole(); var helper = new TestHelper(); var controller = helper.CreateController <UserController>(user); var service = helper.GetService <Mock <IPimsService> >(); var mapper = helper.GetService <IMapper>(); service.Setup(m => m.User.AddAccessRequest(It.IsAny <Entity.AccessRequest>())); var accessRequest = EntityHelper.CreateAccessRequest(); var model = mapper.Map <Model.AccessRequestModel>(accessRequest); // Act var result = await controller.AddAccessRequestAsync(model); // Assert var actionResult = Assert.IsType <CreatedAtActionResult>(result); var actualResult = Assert.IsType <Model.AccessRequestModel>(actionResult.Value); Assert.Equal(model, actualResult, new ShallowPropertyCompare()); Assert.Equal(model.Agencies, actualResult.Agencies, new DeepPropertyCompare()); Assert.Equal(model.Roles, actualResult.Roles, new DeepPropertyCompare()); Assert.Equal(model.User.Id, actualResult.User.Id); service.Verify(m => m.User.AddAccessRequest(It.IsAny <Entity.AccessRequest>()), Times.Once()); }
public void UpdateAccessRequest_Null_BadRequest() { // Arrange var user = PrincipalHelper.CreateForRole(); var helper = new TestHelper(); var controller = helper.CreateController <AccessRequestController>(user); var service = helper.GetService <Mock <IPimsRepository> >(); var mapper = helper.GetService <IMapper>(); service.Setup(m => m.AccessRequest.Update(It.IsAny <Entity.PimsAccessRequest>())); // Act // Assert Assert.Throws <BadRequestException>(() => controller.UpdateAccessRequest(1, null)); service.Verify(m => m.AccessRequest.Update(It.IsAny <Entity.PimsAccessRequest>()), Times.Never()); }
public async void AddAccessRequestAsync_Null_BadRequest() { // Arrange var user = PrincipalHelper.CreateForRole(); var helper = new TestHelper(); var controller = helper.CreateController <UserController>(user); var service = helper.GetService <Mock <IPimsService> >(); var mapper = helper.GetService <IMapper>(); service.Setup(m => m.User.AddAccessRequest(It.IsAny <Entity.AccessRequest>())); // Act // Assert await Assert.ThrowsAsync <BadRequestException>(async() => await controller.AddAccessRequestAsync(null)); service.Verify(m => m.User.AddAccessRequest(It.IsAny <Entity.AccessRequest>()), Times.Never()); }
public async Task UserInfo_Success() { // Arrange var user = PrincipalHelper.CreateForRole(); var helper = new TestHelper(); var options = new Pims.Keycloak.Configuration.KeycloakOptions() { Authority = "test", Audience = "test", Client = "test", OpenIdConnect = new OpenIdConnectOptions() { Token = "test", UserInfo = "test" } }; var optionsMonitor = new Mock <IOptionsMonitor <Pims.Keycloak.Configuration.KeycloakOptions> >(); optionsMonitor.Setup(m => m.CurrentValue).Returns(options); var controller = helper.CreateController <UserController>(user, optionsMonitor.Object); var service = helper.GetService <Mock <IProxyRequestClient> >(); var model = new KModel.UserInfoModel() { Id = Guid.NewGuid() }; var response = new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent(System.Text.Json.JsonSerializer.Serialize(model)) }; service.Setup(m => m.ProxyGetAsync(It.IsAny <HttpRequest>(), It.IsAny <string>())).Returns(Task.FromResult(response)); // Act var result = await controller.UserInfoAsync(); // Assert var actionResult = Assert.IsType <JsonResult>(result); var actualResult = Assert.IsType <KModel.UserInfoModel>(actionResult.Value); Assert.Equal(model, actualResult, new ShallowPropertyCompare()); service.Verify(m => m.ProxyGetAsync(It.IsAny <HttpRequest>(), It.IsAny <string>()), Times.Once()); }
public void GetAccessRequest_Current_NoContent() { // Arrange var user = PrincipalHelper.CreateForRole(); var helper = new TestHelper(); var controller = helper.CreateController <AccessRequestController>(user); var service = helper.GetService <Mock <IPimsRepository> >(); var mapper = helper.GetService <IMapper>(); service.Setup(m => m.AccessRequest.Get()); // Act var result = controller.GetAccessRequest(); // Assert var actionResult = Assert.IsType <NoContentResult>(result); service.Verify(m => m.AccessRequest.Get(), Times.Once()); }
public async void GetRoleAsync_Success() { // Arrange var user = PrincipalHelper.CreateForRole("admin-users"); var helper = new TestHelper(); var controller = helper.CreateController <RoleController>(user); var mapper = helper.GetService <IMapper>(); var service = helper.GetService <Mock <IPimsKeycloakService> >(); var erole = new Entity.PimsRole(Guid.NewGuid(), "test"); service.Setup(m => m.GetRoleAsync(It.IsAny <Guid>())).Returns(Task.FromResult(erole)); // Act var result = await controller.GetRoleAsync(erole.RoleUid); // Assert var actionResult = Assert.IsType <JsonResult>(result); var actualResult = Assert.IsType <Model.RoleModel>(actionResult.Value); Assert.Equal(mapper.Map <Model.RoleModel>(erole), actualResult, new DeepPropertyCompare()); service.Verify(m => m.GetRoleAsync(It.IsAny <Guid>()), Times.Once()); }
public void UpdateAccessRequest_InvalidOrganizations_BadRequest() { // Arrange var user = PrincipalHelper.CreateForRole(); var helper = new TestHelper(); var controller = helper.CreateController <AccessRequestController>(user); var service = helper.GetService <Mock <IPimsRepository> >(); var mapper = helper.GetService <IMapper>(); service.Setup(m => m.AccessRequest.Update(It.IsAny <Entity.PimsAccessRequest>())); var accessRequest = new Model.AccessRequestModel() { OrganizationId = new Model.AccessRequestOrganizationModel().Id, RoleId = new Model.RoleModel().Id }; var model = mapper.Map <Model.AccessRequestModel>(accessRequest); // Act // Assert Assert.Throws <BadRequestException>(() => controller.UpdateAccessRequest(model.Id, model)); service.Verify(m => m.AccessRequest.Update(It.IsAny <Entity.PimsAccessRequest>()), Times.Never()); }
public async void GetRolesAsync_Success() { // Arrange var user = PrincipalHelper.CreateForRole("admin-users"); var helper = new TestHelper(); var controller = helper.CreateController <RoleController>(user); var mapper = helper.GetService <IMapper>(); var service = helper.GetService <Mock <IPimsKeycloakService> >(); var erole = new Entity.PimsRole(Guid.NewGuid(), "test"); var eroles = new[] { erole }; service.Setup(m => m.GetRolesAsync(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <string>())).Returns(Task.FromResult((IEnumerable <Entity.PimsRole>)eroles)); // Act var result = await controller.GetRolesAsync(1, 10); // Assert var actionResult = Assert.IsType <JsonResult>(result); var data = Assert.IsType <Model.RoleModel[]>(actionResult.Value); Assert.Equal(mapper.Map <Model.RoleModel[]>(eroles), data, new DeepPropertyCompare()); service.Verify(m => m.GetRolesAsync(1, 10, It.IsAny <string>()), Times.Once()); }
public void UpdateAccessRequest_NullRoles_BadRequest() { // Arrange var user = PrincipalHelper.CreateForRole(); var helper = new TestHelper(); var controller = helper.CreateController <UserController>(user); var service = helper.GetService <Mock <IPimsService> >(); var mapper = helper.GetService <IMapper>(); service.Setup(m => m.User.UpdateAccessRequest(It.IsAny <Entity.AccessRequest>())); var accessRequest = new Model.AccessRequestModel() { Agencies = new List <Model.AccessRequestAgencyModel>(), Roles = null }; var model = mapper.Map <Model.AccessRequestModel>(accessRequest); // Act // Assert Assert.Throws <BadRequestException>(() => controller.UpdateAccessRequest(model.Id, model)); service.Verify(m => m.User.UpdateAccessRequest(It.IsAny <Entity.AccessRequest>()), Times.Never()); }