public async Task Basic_Post_And_Delete_UserOffering() { var offeringId = "0001"; SetupEntities(offeringId); var userOfferingDTO = new UserOfferingDTO { OfferingId = offeringId, UserId = TestGlobals.TEST_USER_ID, RoleName = Globals.ROLE_INSTRUCTOR }; var postResult = await _controller.PostUserOffering(userOfferingDTO); Assert.IsType <CreatedAtActionResult>(postResult.Result); var getResult = await _controller.GetUserOfferingsByOfferingId(offeringId); Assert.Single(getResult.Value); Assert.Equal(Status.Active, getResult.Value.ElementAt(0).IsDeletedStatus); var deleteResult = await _controller.DeleteUserOffering(offeringId, TestGlobals.TEST_USER_ID); AssertUserOffering(deleteResult.Value[0], userOfferingDTO); getResult = await _controller.GetUserOfferingsByOfferingId(offeringId); Assert.Empty(getResult.Value); }
public async Task <ActionResult <UserOffering> > PostUserOffering(UserOfferingDTO userOfferingDTO) { if (userOfferingDTO == null) { return(BadRequest()); } var offering = await _context.Offerings.FindAsync(userOfferingDTO.OfferingId); if (offering == null) { return(BadRequest()); } var authorizationResult = await _authorizationService.AuthorizeAsync(this.User, offering, Globals.POLICY_UPDATE_OFFERING); if (!authorizationResult.Succeeded) { if (User.Identity.IsAuthenticated) { return(new ForbidResult()); } else { return(new ChallengeResult()); } } UserOffering userOffering = new UserOffering { ApplicationUserId = userOfferingDTO.UserId, OfferingId = userOfferingDTO.OfferingId, IdentityRole = await _context.Roles.Where(r => r.Name == userOfferingDTO.RoleName).FirstAsync() }; _context.UserOfferings.Add(userOffering); try { await _context.SaveChangesAsync(); } catch (DbUpdateException) { if (UserOfferingExists(userOffering.ApplicationUserId)) { return(Conflict()); } else { throw; } } return(CreatedAtAction("GetUserOffering", new { id = userOffering.ApplicationUserId }, userOffering)); }
public async Task Post_Invalid_and_Valid_UserOfferings() { var offeringId = "0001"; SetupEntities(offeringId); var userOfferingDTO = new UserOfferingDTO { OfferingId = "non-existing", UserId = TestGlobals.TEST_USER_ID, RoleName = Globals.ROLE_INSTRUCTOR }; var postResult = await _controller.PostUserOffering(userOfferingDTO); Assert.IsType <BadRequestResult>(postResult.Result); userOfferingDTO.OfferingId = offeringId; postResult = await _controller.PostUserOffering(userOfferingDTO); Assert.IsType <CreatedAtActionResult>(postResult.Result); }
private void AssertUserOffering(UserOffering userOffering, UserOfferingDTO userOfferingDTO) { Assert.Equal(userOfferingDTO.OfferingId, userOffering.OfferingId); Assert.Equal(userOfferingDTO.UserId, userOffering.ApplicationUserId); Assert.Equal(userOfferingDTO.RoleName, userOffering.IdentityRole.Name); }