public void Given_I_Call_GetAllSurveys_Then_I_Get_A_Correct_List_Of_Surveys_Returned() { //arrange const string serverPark1Name = "ServerPark1"; const string serverPark2Name = "ServerPark2"; var survey1Mock = new Mock <ISurvey>(); var survey2Mock = new Mock <ISurvey>(); var survey3Mock = new Mock <ISurvey>(); var survey1Items = new List <ISurvey> { survey1Mock.Object, survey2Mock.Object }; var survey2Items = new List <ISurvey> { survey3Mock.Object }; var surveyCollection1Mock = new Mock <ISurveyCollection>(); surveyCollection1Mock.Setup(s => s.GetEnumerator()).Returns(() => survey1Items.GetEnumerator()); var surveyCollection2Mock = new Mock <ISurveyCollection>(); surveyCollection2Mock.Setup(s => s.GetEnumerator()).Returns(() => survey2Items.GetEnumerator()); var serverPark1Mock = new Mock <IServerPark>(); serverPark1Mock.Setup(s => s.Name).Returns(serverPark1Name); serverPark1Mock.Setup(s => s.Surveys).Returns(surveyCollection1Mock.Object); var serverPark2Mock = new Mock <IServerPark>(); serverPark2Mock.Setup(s => s.Name).Returns(serverPark2Name); serverPark2Mock.Setup(s => s.Surveys).Returns(surveyCollection2Mock.Object); _parkServiceMock.Setup(p => p.GetServerParkNames(_connectionModel)).Returns(new List <string> { serverPark1Name, serverPark2Name }); _parkServiceMock.Setup(p => p.GetServerPark(_connectionModel, serverPark1Name)).Returns(serverPark1Mock.Object); _parkServiceMock.Setup(p => p.GetServerPark(_connectionModel, serverPark2Name)).Returns(serverPark2Mock.Object); //act var result = _sut.GetAllSurveys(_connectionModel).ToList(); //assert Assert.NotNull(result); Assert.IsNotEmpty(result); Assert.AreEqual(3, result.Count); Assert.True(result.Contains(survey1Mock.Object)); Assert.True(result.Contains(survey2Mock.Object)); Assert.True(result.Contains(survey3Mock.Object)); }
// GET: /<controller>/ public IActionResult Index() { string UserID = _userManager.GetUserId(User); User this_User = _userService.GetById(UserID); SurveyIndexViewModel surveys = new SurveyIndexViewModel(); IEnumerable <Survey> allSurveys = _surveyService.GetAllSurveys(); surveys.surveys = allSurveys.Where(s => s.CreatorId == this_User.Id); return(View(surveys)); }
public async Task <IHttpActionResult> Get(FormTemplateDiscriminators discriminator, Guid?projectId = null) { //TODO: refactor to api/projects/{projectId}/surveys var surveyService = new SurveyService(UnitOfWork); if (CurrentUser is OrgUser) { var isOrgAdmin = await ServiceContext.UserManager.IsInRoleAsync(CurrentOrgUser.Id, Role.ORG_ADMINSTRATOR); var cacheKey = string.Empty; if (isOrgAdmin) { cacheKey = projectId.HasValue ? $"{CACHE_KEY}_{ORG_ADMIN_KEY}_{discriminator}_{projectId}_{CurrentOrgUser.Id}" : $"{CACHE_KEY}_{ORG_ADMIN_KEY}_{discriminator}_{CurrentOrgUser.Id}"; } else { cacheKey = projectId.HasValue ? $"{CACHE_KEY}_{discriminator}_{projectId}_{CurrentOrgUser.Id}" : $"{CACHE_KEY}_{discriminator}_{CurrentOrgUser.Id}"; } var cacheEntry = MemoryCacher.GetValue(cacheKey); if (cacheEntry == null) { var userSurveys = surveyService.GetUserSurveys(CurrentOrgUser, discriminator, projectId); if (userSurveys == null) { return(Unauthorized()); } MemoryCacher.Add(cacheKey, userSurveys, DateTimeOffset.UtcNow.AddMinutes(1)); return(Ok(userSurveys)); } else { var result = (List <FilledFormDTO>)cacheEntry; return(new CachedResult <List <FilledFormDTO> >(result, TimeSpan.FromMinutes(1), this)); } } // else if current user is SuperUser var _cacheKey = projectId.HasValue ? $"{CACHE_KEY}_{ADMIN_KEY}_{discriminator}_{projectId}" : $"{CACHE_KEY}_{ADMIN_KEY}_{discriminator}"; var _cacheEntry = MemoryCacher.GetValue(_cacheKey); if (_cacheEntry == null) { var surveys = surveyService.GetAllSurveys(discriminator, projectId); MemoryCacher.Add(_cacheKey, surveys, DateTimeOffset.UtcNow.AddMinutes(1)); return(Ok(surveys)); } else { var result = (List <FilledFormDTO>)_cacheEntry; return(new CachedResult <List <FilledFormDTO> >(result, TimeSpan.FromMinutes(1), this)); } }