Exemple #1
0
        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);
        }
Exemple #2
0
        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));
        }
Exemple #3
0
        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);
        }
Exemple #4
0
 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);
 }