public async Task PatchRestrictionReturnsArgumentNullExceptionWhenModelIsNull() { // Arrange var segmentService = new SkillSegmentService(repository, mapper, jobProfileSegmentRefreshService); // Act await Assert.ThrowsAsync <ArgumentNullException>(async() => await segmentService.PatchRestrictionAsync(null, Guid.NewGuid()).ConfigureAwait(false)).ConfigureAwait(false); }
public async Task PatchRestrictionReturnsNotFoundWhenDataDoesNotExist() { // Arrange var fakeRepository = A.Fake <ICosmosRepository <JobProfileSkillSegmentModel> >(); A.CallTo(() => fakeRepository.GetAsync(A <Expression <Func <JobProfileSkillSegmentModel, bool> > > .Ignored)).Returns((JobProfileSkillSegmentModel)null); var segmentService = new SkillSegmentService(fakeRepository, mapper, jobProfileSegmentRefreshService); // Act var result = await segmentService.PatchRestrictionAsync(GetPatchRestrictionModel(), defaultJobProfileId).ConfigureAwait(false); // Assert A.CallTo(() => fakeRepository.GetAsync(A <Expression <Func <JobProfileSkillSegmentModel, bool> > > .Ignored)).MustHaveHappenedOnceExactly(); Assert.Equal(HttpStatusCode.NotFound, result); }
public async Task PatchRestrictionReturnsAlreadyReportedWhenExistingSequenceNumberIsHigher() { // Arrange var existingModel = GetJobProfileSkillSegmentModel(999); var fakeRepository = A.Fake <ICosmosRepository <JobProfileSkillSegmentModel> >(); A.CallTo(() => fakeRepository.GetAsync(A <Expression <Func <JobProfileSkillSegmentModel, bool> > > .Ignored)).Returns(existingModel); var segmentService = new SkillSegmentService(fakeRepository, mapper, jobProfileSegmentRefreshService); // Act var result = await segmentService.PatchRestrictionAsync(GetPatchRestrictionModel(), defaultJobProfileId).ConfigureAwait(false); // Assert A.CallTo(() => fakeRepository.GetAsync(A <Expression <Func <JobProfileSkillSegmentModel, bool> > > .Ignored)).MustHaveHappenedOnceExactly(); Assert.Equal(HttpStatusCode.AlreadyReported, result); }
public async Task PatchRestrictionReturnsAlreadyReportedWhenMessageActionIsDeletedAndDataDoesNotExist() { // Arrange var existingModel = GetJobProfileSkillSegmentModel(); var patchModel = GetPatchRestrictionModel(MessageAction.Deleted, Guid.NewGuid()); var fakeRepository = A.Fake <ICosmosRepository <JobProfileSkillSegmentModel> >(); A.CallTo(() => fakeRepository.GetAsync(A <Expression <Func <JobProfileSkillSegmentModel, bool> > > .Ignored)).Returns(existingModel); var segmentService = new SkillSegmentService(fakeRepository, mapper, jobProfileSegmentRefreshService); // Act var result = await segmentService.PatchRestrictionAsync(patchModel, defaultJobProfileId).ConfigureAwait(false); // Assert A.CallTo(() => fakeRepository.GetAsync(A <Expression <Func <JobProfileSkillSegmentModel, bool> > > .Ignored)).MustHaveHappenedOnceExactly(); Assert.Equal(HttpStatusCode.AlreadyReported, result); }
public async Task PatchRestrictionReturnsSuccessWhenMessageActionIsDeleted() { // Arrange var model = GetPatchRestrictionModel(MessageAction.Deleted); var existingModel = GetJobProfileSkillSegmentModel(); var fakeRepository = A.Fake <ICosmosRepository <JobProfileSkillSegmentModel> >(); A.CallTo(() => fakeRepository.GetAsync(A <Expression <Func <JobProfileSkillSegmentModel, bool> > > .Ignored)).Returns(existingModel); A.CallTo(() => fakeRepository.UpsertAsync(A <JobProfileSkillSegmentModel> .Ignored)).Returns(HttpStatusCode.OK); var segmentService = new SkillSegmentService(fakeRepository, mapper, jobProfileSegmentRefreshService); // Act var result = await segmentService.PatchRestrictionAsync(model, defaultJobProfileId).ConfigureAwait(false); // Assert A.CallTo(() => fakeRepository.GetAsync(A <Expression <Func <JobProfileSkillSegmentModel, bool> > > .Ignored)).MustHaveHappenedOnceExactly(); A.CallTo(() => fakeRepository.UpsertAsync(A <JobProfileSkillSegmentModel> .Ignored)).MustHaveHappenedOnceExactly(); A.CallTo(() => jobProfileSegmentRefreshService.SendMessageAsync(A <RefreshJobProfileSegmentServiceBusModel> .Ignored)).MustHaveHappenedOnceExactly(); A.CallTo(() => mapper.Map <Restriction>(A <PatchRestrictionModel> .Ignored)).MustNotHaveHappened(); Assert.Equal(HttpStatusCode.OK, result); }