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))); }
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); }
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); }
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); }
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); }