public Task <ProjectListResponseModel> GetProjectsForDevice(Guid deviceUid, bool includeProjectSettings = true, IHeaderDictionary customHeaders = null) { log.LogDebug($"{nameof(GetProjectsForDevice)} Mock: deviceUid {deviceUid}"); var projectListResponseModel = new ProjectListResponseModel() { Projects = new List <ProjectResponseModel>() { new ProjectResponseModel() { AccountTRN = TRNHelper.MakeTRN(Guid.NewGuid().ToString(), TRNHelper.TRN_ACCOUNT), ProjectTRN = TRNHelper.MakeTRN(Guid.NewGuid().ToString()), ProjectName = "this is a project", Timezone = "Timbucktoo", Boundary = new ProjectBoundary() { type = "Polygon", coordinates = new List <List <double[]> > { new List <double[]> { new[] { 150.3, 1.2 }, new[] { 150.4, 1.2 }, new[] { 150.4, 1.3 }, new[] { 150.4, 1.4 }, new[] { 150.3, 1.2 } } } } } } }; log.LogDebug($"{nameof(GetProjectsForDevice)} Mock: projectListResponseModel {JsonConvert.SerializeObject(projectListResponseModel)}"); return(Task.FromResult(projectListResponseModel)); }
public ProjectListResponseModel GetProjectsForDevice(string deviceTrn) { var projectListResponseModel = new ProjectListResponseModel() { Projects = new List <ProjectResponseModel> { new ProjectResponseModel { AccountTRN = TRNHelper.MakeTRN(Guid.NewGuid().ToString(), TRNHelper.TRN_ACCOUNT), ProjectTRN = TRNHelper.MakeTRN(Guid.NewGuid().ToString(), TRNHelper.TRN_PROJECT), ProjectName = "this is a project", Timezone = "Timbucktoo", Boundary = new ProjectBoundary() { type = "Polygon", coordinates = new List <List <double[]> > { new List <double[]> { new double[] { 180, 90 }, new double[] { 180, 90 } } } } } } }; Logger.LogInformation($"{nameof(GetProjectsForDevice)}: deviceTrn {deviceTrn}. projectListResponseModel {JsonConvert.SerializeObject(projectListResponseModel)}"); return(projectListResponseModel); }
public async Task GetProjects_NoneFoundInCws_UnhappyPath() { var cwsProjects = new ProjectListResponseModel(); var cwsDeviceClient = new Mock <ICwsDeviceClient>(); cwsDeviceClient.Setup(pr => pr.GetProjectsForDevice(It.IsAny <Guid>(), true, _customHeaders)) .ReturnsAsync(cwsProjects); var getProjectsForDeviceExecutor = RequestExecutorContainerFactory.Build <GetProjectsForDeviceExecutor> (_logger, _configStore, _serviceExceptionHandler, headers: _customHeaders, cwsDeviceClient: cwsDeviceClient.Object); var response = await getProjectsForDeviceExecutor.ProcessAsync(new DeviceIsUid(_deviceUid)) as ProjectDataListResult; Assert.NotNull(response); Assert.Equal(105, response.Code); Assert.Equal("Unable to locate projects for device in cws", response.Message); Assert.Empty(response.ProjectDescriptors); }
public void GetProjectsForDeviceTest() { const string deviceTrn = "trn::profilex:us-west-2:device:560c2a6c-6b7e-48d8-b1a5-e4009e2d4c97"; const string expectedAccountTrn = "trn::profilex:us-west-2:account:560c2a6c-6b7e-48d8-b1a5-e4009e2d4c97"; const string expectedProjectTrn = "trn::profilex:us-west-2:project:560c2a6c-6b7e-48d8-b1a5-e4009e2d4c97"; var projectListResponseModel = new ProjectListResponseModel { HasMore = false, Projects = new List <ProjectResponseModel>() { new ProjectResponseModel() { ProjectTRN = expectedProjectTrn, AccountTRN = expectedAccountTrn } } }; var route = $"/devices/{deviceTrn}/projects"; var expectedUrl = $"{baseUrl}{route}?from=0&limit=20&includeProjectSettings=true"; mockServiceResolution.Setup(m => m.ResolveRemoteServiceEndpoint( It.IsAny <string>(), It.IsAny <ApiType>(), It.IsAny <ApiVersion>(), route, It.IsAny <IList <KeyValuePair <string, string> > >())).Returns(Task.FromResult(expectedUrl)); MockUtilities.TestRequestSendsCorrectJson("Get projects for a device", mockWebRequest, null, expectedUrl, HttpMethod.Get, projectListResponseModel, async() => { var client = ServiceProvider.GetRequiredService <ICwsDeviceClient>(); var result = await client.GetProjectsForDevice(TRNHelper.ExtractGuid(deviceTrn).Value, true); Assert.NotNull(result); Assert.False(result.HasMore); Assert.NotNull(result.Projects); Assert.Single(result.Projects); Assert.Equal(TRNHelper.ExtractGuidAsString(expectedProjectTrn), result.Projects[0].ProjectId); Assert.Equal(TRNHelper.ExtractGuidAsString(expectedAccountTrn), result.Projects[0].AccountId); return(true); }); }
public async Task GetProjects_HappyPath() { var cwsProjects = new ProjectListResponseModel { Projects = new List <ProjectResponseModel> { new ProjectResponseModel() { AccountTRN = TRNHelper.MakeTRN(_customerUid, TRNHelper.TRN_ACCOUNT), ProjectTRN = TRNHelper.MakeTRN(_projectUid, TRNHelper.TRN_PROJECT), ProjectName = _projectName, Timezone = _timeZone, Boundary = _projectBoundary } } }; var cwsDeviceClient = new Mock <ICwsDeviceClient>(); cwsDeviceClient.Setup(pr => pr.GetProjectsForDevice(It.IsAny <Guid>(), true, _customHeaders)) .ReturnsAsync(cwsProjects); var getProjectsForDeviceExecutor = RequestExecutorContainerFactory.Build <GetProjectsForDeviceExecutor> (_logger, _configStore, _serviceExceptionHandler, headers: _customHeaders, cwsDeviceClient: cwsDeviceClient.Object); var response = await getProjectsForDeviceExecutor.ProcessAsync(new DeviceIsUid(_deviceUid)) as ProjectDataListResult; Assert.NotNull(response); Assert.Equal(0, response.Code); Assert.Equal("success", response.Message); Assert.NotNull(response.ProjectDescriptors); Assert.Single(response.ProjectDescriptors); Assert.Equal(_customerUid, response.ProjectDescriptors[0].CustomerUID); Assert.Equal(_projectUid, response.ProjectDescriptors[0].ProjectUID); Assert.Equal(Guid.Parse(_projectUid).ToLegacyId(), response.ProjectDescriptors[0].ShortRaptorProjectId); Assert.Equal(_projectName, response.ProjectDescriptors[0].Name); Assert.False(response.ProjectDescriptors[0].IsArchived); Assert.Equal(_boundaryString, response.ProjectDescriptors[0].ProjectGeofenceWKT); }