public async Task <HttpStatusCode> TransformItemActivity([ActivityTrigger] Uri uri) { logger.LogInformation($"Loading SOC dataset item: {uri}"); var lmiSoc = await lmiImportApiConnector.GetDetailAsync(uri).ConfigureAwait(false); if (lmiSoc != null) { lmiSoc.QualificationLevel.SetMeasures(); lmiSoc.EmploymentByRegion.SetMeasures(); lmiSoc.TopIndustriesInJobGroup.SetMeasures(); logger.LogInformation($"Transforming SOC dataset item for {uri} to cache"); var jobGroup = mapper.Map <JobGroupModel>(lmiSoc); if (jobGroup != null) { var existingJobGroup = await jobGroupDocumentService.GetAsync(w => w.Soc == jobGroup.Soc, jobGroup.Soc.ToString(CultureInfo.InvariantCulture)).ConfigureAwait(false); if (existingJobGroup != null) { jobGroup.Etag = existingJobGroup.Etag; } logger.LogInformation($"Upserting SOC datasets item: {jobGroup.Soc}"); return(await jobGroupDocumentService.UpsertAsync(jobGroup).ConfigureAwait(false)); } } return(HttpStatusCode.BadRequest); }
public async Task LmiApiConnectorGetDetailReturnsSuccess() { // arrange var expectedResult = new SocDatasetModel { Id = Guid.NewGuid(), Soc = 1234, }; A.CallTo(() => fakeApiDataConnector.GetAsync <SocDatasetModel>(A <HttpClient> .Ignored, A <Uri> .Ignored)).Returns(expectedResult); // act var result = await lmiImportApiConnector.GetDetailAsync(new Uri("https://somewhere.com", UriKind.Absolute)).ConfigureAwait(false); // assert A.CallTo(() => fakeApiDataConnector.GetAsync <SocDatasetModel>(A <HttpClient> .Ignored, A <Uri> .Ignored)).MustHaveHappenedOnceExactly(); Assert.NotNull(result); Assert.Equal(expectedResult.Id, result !.Id); Assert.Equal(expectedResult.Soc, result.Soc); }
public async Task LmiOrchestrationTriggerTransformItemAsyncIsSuccessful() { // Arrange const HttpStatusCode expectedResult = HttpStatusCode.OK; var dummySocDatasetModel = A.Dummy <SocDatasetModel>(); var dummyJobgroup = A.Dummy <JobGroupModel>(); A.CallTo(() => fakeLmiImportApiConnector.GetDetailAsync(A <Uri> .Ignored)).Returns(dummySocDatasetModel); A.CallTo(() => fakeMapper.Map <JobGroupModel>(A <SocDatasetModel> .Ignored)).Returns(dummyJobgroup); A.CallTo(() => fakeJobGroupDocumentService.GetAsync(A <Expression <Func <JobGroupModel, bool> > > .Ignored, A <string> .Ignored)).Returns(dummyJobgroup); A.CallTo(() => fakeJobGroupDocumentService.UpsertAsync(A <JobGroupModel> .Ignored)).Returns(expectedResult); // Act var result = await lmiOrchestrationTrigger.TransformItemActivity(new Uri("https://somewhere.com", UriKind.Absolute)).ConfigureAwait(false); // Assert A.CallTo(() => fakeLmiImportApiConnector.GetDetailAsync(A <Uri> .Ignored)).MustHaveHappenedOnceExactly(); A.CallTo(() => fakeMapper.Map <JobGroupModel>(A <SocDatasetModel> .Ignored)).MustHaveHappenedOnceExactly(); A.CallTo(() => fakeJobGroupDocumentService.GetAsync(A <Expression <Func <JobGroupModel, bool> > > .Ignored, A <string> .Ignored)).MustHaveHappenedOnceExactly(); A.CallTo(() => fakeJobGroupDocumentService.UpsertAsync(A <JobGroupModel> .Ignored)).MustHaveHappenedOnceExactly(); Assert.Equal(expectedResult, result); }