public async Task JobProfileServiceRefreshSegmentsReturnsSuccessWhenProfileReplacedAsync() { // arrange var refreshJobProfileSegmentModel = A.Fake <RefreshJobProfileSegment>(); var existingJobProfileModel = A.Fake <JobProfileModel>(); existingJobProfileModel.Segments = new List <SegmentModel> { new SegmentModel { Segment = Data.JobProfileSegment.Overview, }, }; var jobProfileModel = A.Fake <JobProfileModel>(); var existingSegmentModel = A.Dummy <SegmentModel>(); var segmentModel = A.Dummy <SegmentModel>(); var expectedResult = HttpStatusCode.OK; A.CallTo(() => repository.GetAsync(A <Expression <Func <JobProfileModel, bool> > > .Ignored)).Returns(existingJobProfileModel); A.CallTo(() => segmentService.RefreshSegmentAsync(refreshJobProfileSegmentModel)).Returns(segmentModel); A.CallTo(() => repository.UpsertAsync(A <JobProfileModel> .Ignored)).Returns(HttpStatusCode.OK); // act var result = await jobProfileService.RefreshSegmentsAsync(refreshJobProfileSegmentModel).ConfigureAwait(false); // assert A.CallTo(() => repository.GetAsync(A <Expression <Func <JobProfileModel, bool> > > .Ignored)).MustHaveHappenedOnceExactly(); A.CallTo(() => segmentService.RefreshSegmentAsync(refreshJobProfileSegmentModel)).MustHaveHappenedOnceExactly(); A.CallTo(() => repository.UpsertAsync(A <JobProfileModel> .Ignored)).MustHaveHappenedOnceExactly(); result.Should().Be(expectedResult); }
public async Task <IActionResult> Refresh([FromBody] RefreshJobProfileSegment refreshJobProfileSegmentModel) { logService.LogInformation($"{nameof(Refresh)} has been called with {refreshJobProfileSegmentModel?.JobProfileId} for {refreshJobProfileSegmentModel?.CanonicalName} with seq number {refreshJobProfileSegmentModel?.SequenceNumber}"); if (refreshJobProfileSegmentModel == null) { return(BadRequest()); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var response = await jobProfileService.RefreshSegmentsAsync(refreshJobProfileSegmentModel).ConfigureAwait(false); logService.LogInformation($"{nameof(Refresh)} has upserted content for: {refreshJobProfileSegmentModel.CanonicalName} - Response - {response}"); return(new StatusCodeResult((int)response)); }