public void GetProjectListForCustomer_NoUserUid_HappyPath() { // todo once intersection utility is complete, this may be able to return projects var projectName = "the project name"; var lastUpdate = DateTime.UtcNow.AddDays(-1); var projectConfigurations = new List <ProjectConfigurationModel>(); var fullName = "trn::profilex:us-west-2:project:5d2ab210-5fb4-4e77-90f9-b0b41c9e6e3f||2020-03-25 23:03:45.314||BootCamp 2012.dc"; projectConfigurations.Add(new ProjectConfigurationModel() { FileType = ProjectConfigurationFileType.CALIBRATION.ToString(), FileName = fullName }); var projectDetailResponseModel = CreateProjectDetailModel(_customerTrn, _projectTrn, projectName, lastUpdate, projectConfigurations: projectConfigurations); var projectDetailListResponseModel = new ProjectDetailListResponseModel() { Projects = new List <ProjectDetailResponseModel>() { projectDetailResponseModel } }; var mockCwsProjectClient = new Mock <ICwsProjectClient>(); mockCwsProjectClient.Setup(pr => pr.GetProjectsForCustomer(It.IsAny <Guid>(), It.IsAny <Guid?>(), It.IsAny <bool>(), It.IsAny <CwsProjectType?>(), It.IsAny <ProjectStatus?>(), It.IsAny <bool>(), It.IsAny <HeaderDictionary>())).ReturnsAsync(projectDetailListResponseModel); var projectDatabaseModelList = ProjectRequestHelper.GetIntersectingProjects(_customerUid.ToString(), 89, 179, _projectUid.ToString(), _logger, _serviceExceptionHandler, mockCwsProjectClient.Object, _customHeaders); var result = projectDatabaseModelList.Result; Assert.NotNull(result); Assert.Empty(result); }
public Task <ProjectDetailListResponseModel> GetProjectsForCustomer(Guid customerUid, Guid?userUid = null, bool includeSettings = true, CwsProjectType?type = null, ProjectStatus?status = null, bool onlyAdmin = false, IHeaderDictionary customHeaders = null) { log.LogDebug($"{nameof(GetProjectsForCustomer)} Mock: customerUid {customerUid} userUid {userUid}"); var projectDetailListResponseModel = new ProjectDetailListResponseModel(); log.LogDebug($"{nameof(GetProjectsForCustomer)} Mock: projectDetailListResponseModel {JsonConvert.SerializeObject(projectDetailListResponseModel)}"); return(Task.FromResult(projectDetailListResponseModel)); }
/// <summary> /// Gets full project details using a user token. /// The user must have access to this account. /// Cache to include userUid as different users have access to a different project set /// cws team to generate a detailed list in 1 shot CCSSSCON-409 /// </summary> public async Task <ProjectDetailListResponseModel> GetProjectsForCustomer(Guid customerUid, Guid?userUid = null, bool includeSettings = true, CwsProjectType?type = null, ProjectStatus?status = null, bool onlyAdmin = false, IHeaderDictionary customHeaders = null) { log.LogDebug($"{nameof(GetProjectsForCustomer)}: customerUid {customerUid} userUid {userUid}"); var projectSummaryListResponseModel = await GetProjectsForMyCustomer(customerUid, userUid, includeSettings, type, status, customHeaders); var projects = onlyAdmin ? projectSummaryListResponseModel.Projects.Where(p => p.UserProjectRole == UserProjectRoleEnum.Admin) : projectSummaryListResponseModel.Projects; var projectDetailListResponseModel = new ProjectDetailListResponseModel { Projects = projects.Select(p => GetProjectDetailsFromSummary(p, customerUid)).ToList() }; log.LogDebug($"{nameof(GetProjectsForCustomer)}: projectSummaryListResponseModel {JsonConvert.SerializeObject(projectSummaryListResponseModel)}"); return(projectDetailListResponseModel); }
public void GetProjectListForCustomer_HappyPath() { var projectName = "the project name"; var lastUpdate = DateTime.UtcNow.AddDays(-1); var projectConfigurations = new List <ProjectConfigurationModel>(); var fullName = "trn::profilex:us-west-2:project:5d2ab210-5fb4-4e77-90f9-b0b41c9e6e3f||2020-03-25 23:03:45.314||BootCamp 2012.dc"; projectConfigurations.Add(new ProjectConfigurationModel() { FileType = ProjectConfigurationFileType.CALIBRATION.ToString(), FileName = fullName }); var projectDetailResponseModel = CreateProjectDetailModel(_customerTrn, _projectTrn, projectName, lastUpdate, projectConfigurations: projectConfigurations); var projectDetailListResponseModel = new ProjectDetailListResponseModel() { Projects = new List <ProjectDetailResponseModel>() { projectDetailResponseModel } }; var mockCwsProjectClient = new Mock <ICwsProjectClient>(); mockCwsProjectClient.Setup(pr => pr.GetProjectsForCustomer(It.IsAny <Guid>(), It.IsAny <Guid>(), It.IsAny <bool>(), It.IsAny <CwsProjectType?>(), It.IsAny <ProjectStatus?>(), It.IsAny <bool>(), It.IsAny <HeaderDictionary>())).ReturnsAsync(projectDetailListResponseModel); var projectDatabaseModelList = ProjectRequestHelper.GetProjectListForCustomer(_customerUid, _userUid, _logger, _serviceExceptionHandler, mockCwsProjectClient.Object, null, null, false, true, _customHeaders); var result = projectDatabaseModelList.Result; Assert.NotNull(result); Assert.Single(result); Assert.Equal(_projectUid.ToString(), result[0].ProjectUID); Assert.Equal(_customerUid.ToString(), result[0].CustomerUID); Assert.Equal(projectName, result[0].Name); Assert.Equal(CwsProjectType.AcceptsTagFiles, result[0].ProjectType); Assert.Equal("New Zealand Standard Time", result[0].ProjectTimeZone); Assert.Equal("Pacific/Auckland", result[0].ProjectTimeZoneIana); Assert.Equal("POLYGON((150.3 1.2,150.4 1.2,150.4 1.3,150.4 1.4,150.3 1.2))", result[0].Boundary); Assert.Equal("BootCamp 2012.dc", result[0].CoordinateSystemFileName); Assert.Equal(new DateTime(2020, 03, 25, 23, 03, 45, 314), result[0].CoordinateSystemLastActionedUTC); Assert.False(result[0].IsArchived); Assert.Equal(lastUpdate, result[0].LastActionedUTC); }