示例#1
0
        public IActionResult IsDailyChallengeCompleted(CheckDailyChallengeDTO checkDaily)
        {
            if (checkDaily == null)
            {
                return(BadRequest());
            }
            User usr = _userRepo.GetById(checkDaily.UserID);

            if (usr == null)
            {
                return(BadRequest());
            }

            ChallengeUser challenge = _challengeRepo.GetUserChallenge(checkDaily.UserID, checkDaily.ChallengeID);

            if (challenge == null)
            {
                return(BadRequest());
            }

            if (challenge.CompletedDate != null)
            {
                return(StatusCode(304));
            }
            //Timestamp, DO NOT CHANGE VALUE! Needed to check the daily completed challenges.
            DateTime timeStamp = _challengeRepo.GetTimeStamp();

            if (_challengeRepo.UserHasCompletedDailyChallengeOfCategory(checkDaily.UserID, challenge.Challenge.Category.CategoryId, timeStamp.Day, timeStamp.Month, timeStamp.Year))
            {
                return(StatusCode(303));
            }
            return(Ok(new CheckDailyChallengeResponseDTO(timeStamp)));
        }
示例#2
0
        public void IsDailyChallengeCompletedWithBadChallengeReturnsBadRequest()
        {
            CheckDailyChallengeDTO input = new CheckDailyChallengeDTO {
                ChallengeID = _dummyData.Challenges.First().ChallengeId,
                UserID      = _dummyData.Users.First().UserId
            };

            _userRepository.Setup(ur => ur.GetById(0)).Returns(_dummyData.Users.First());
            _challengeRepository.Setup(repo => repo.GetUserChallenge(input.UserID, input.ChallengeID)).Returns <ChallengeUser>(null);
            var result = _challengesController.IsDailyChallengeCompleted(input) as BadRequestResult;

            Assert.NotNull(result);
            Assert.Equal(400, result.StatusCode);
        }
示例#3
0
        public void IsDailyChallengeCompletedWithCompletedChallengeReturns304()
        {
            CheckDailyChallengeDTO input = new CheckDailyChallengeDTO
            {
                ChallengeID = _dummyData.Challenges.First().ChallengeId,
                UserID      = _dummyData.Users.First().UserId
            };

            _dummyData.ChallengesUser.First().CompletedDate = DummyProject3_BackendContext.CompleteChallengeDate;
            _userRepository.Setup(ur => ur.GetById(0)).Returns(_dummyData.Users.First());
            _challengeRepository.Setup(repo => repo.GetUserChallenge(input.UserID, input.ChallengeID)).Returns(_dummyData.ChallengesUser.First());
            var result = _challengesController.IsDailyChallengeCompleted(input) as StatusCodeResult;

            Assert.NotNull(result);
            Assert.Equal(304, result.StatusCode);
        }
示例#4
0
        public void IsDailyChallengeCompletedWithChallengeCompletedOnSameDayReturns303()
        {
            CheckDailyChallengeDTO input = new CheckDailyChallengeDTO
            {
                ChallengeID = _dummyData.Challenges.First().ChallengeId,
                UserID      = _dummyData.Users.First().UserId
            };

            _dummyData.ChallengesUser.Skip(1).First().CompletedDate = DummyProject3_BackendContext.CompleteChallengeDate;
            _userRepository.Setup(ur => ur.GetById(0)).Returns(_dummyData.Users.First());
            _challengeRepository.Setup(repo => repo.GetUserChallenge(input.UserID, input.ChallengeID)).Returns(_dummyData.ChallengesUser.First());
            _challengeRepository.Setup(repo => repo.GetTimeStamp()).Returns(DummyProject3_BackendContext.CompleteChallengeDate);
            _challengeRepository.Setup(repo => repo.UserHasCompletedDailyChallengeOfCategory(input.UserID,
                                                                                             _dummyData.ChallengesUser.First().Challenge.Category.CategoryId, DummyProject3_BackendContext.CompleteChallengeDate.Day,
                                                                                             DummyProject3_BackendContext.CompleteChallengeDate.Month, DummyProject3_BackendContext.CompleteChallengeDate.Year)).Returns(true);

            var result = _challengesController.IsDailyChallengeCompleted(input) as StatusCodeResult;

            Assert.NotNull(result);
            Assert.Equal(303, result.StatusCode);
        }
示例#5
0
        public void IsDailyChallengeCompletedReturnsOkWithTimeStamp()
        {
            CheckDailyChallengeDTO input = new CheckDailyChallengeDTO
            {
                ChallengeID = _dummyData.Challenges.First().ChallengeId,
                UserID      = _dummyData.Users.First().UserId
            };

            _userRepository.Setup(ur => ur.GetById(0)).Returns(_dummyData.Users.First());
            _challengeRepository.Setup(repo => repo.GetTimeStamp()).Returns(DummyProject3_BackendContext.CompleteChallengeDate);
            _challengeRepository.Setup(repo => repo.GetUserChallenge(input.UserID, input.ChallengeID)).Returns(_dummyData.ChallengesUser.First());
            _challengeRepository.Setup(repo => repo.UserHasCompletedDailyChallengeOfCategory(input.UserID,
                                                                                             _dummyData.ChallengesUser.First().Challenge.Category.CategoryId, DummyProject3_BackendContext.CompleteChallengeDate.Day,
                                                                                             DummyProject3_BackendContext.CompleteChallengeDate.Month, DummyProject3_BackendContext.CompleteChallengeDate.Year)).Returns(false);

            var result = _challengesController.IsDailyChallengeCompleted(input) as OkObjectResult;

            Assert.NotNull(result);
            Assert.Equal(200, result.StatusCode);
            Assert.NotNull(result.Value);
            Assert.IsAssignableFrom <CheckDailyChallengeResponseDTO>(result.Value);
            Assert.Equal(DummyProject3_BackendContext.CompleteChallengeDate, (result.Value as CheckDailyChallengeResponseDTO).TimeStamp);
        }