예제 #1
0
        public async Task EventMessageServiceUpdateAsyncReturnsSuccessForDifferentPartitionKeyDeleteError()
        {
            // arrange
            var existingContentPageModel = A.Fake <ContentPageModel>();
            var contentPageModel         = A.Fake <ContentPageModel>();
            var expectedResult           = HttpStatusCode.Created;

            existingContentPageModel.Version = Guid.NewGuid();
            contentPageModel.Version         = Guid.NewGuid();
            contentPageModel.PartitionKey    = "a-partition-key";
            contentPageModel.PageLocations   = new List <PageLocationModel>
            {
                new PageLocationModel(),
            };

            existingContentPageModel.PartitionKey = "a-different-partition-key";

            A.CallTo(() => fakeContentPageService.GetByIdAsync(A <Guid> .Ignored, A <string> .Ignored)).Returns(existingContentPageModel);
            A.CallTo(() => fakeContentPageService.DeleteAsync(A <Guid> .Ignored)).Returns(false);
            A.CallTo(() => fakeContentPageService.UpsertAsync(A <ContentPageModel> .Ignored)).Returns(expectedResult);

            var eventMessageService = new EventMessageService <ContentPageModel>(fakeLogger, fakeContentPageService);

            // act
            var result = await eventMessageService.UpdateAsync(contentPageModel).ConfigureAwait(false);

            // assert
            A.CallTo(() => fakeContentPageService.GetByIdAsync(A <Guid> .Ignored, A <string> .Ignored)).MustHaveHappenedOnceExactly();
            A.CallTo(() => fakeContentPageService.DeleteAsync(A <Guid> .Ignored)).MustHaveHappenedOnceExactly();
            A.CallTo(() => fakeContentPageService.UpsertAsync(A <ContentPageModel> .Ignored)).MustNotHaveHappened();
            A.Equals(result, expectedResult);
        }
        public async Task EventMessageServiceUpdateAsyncReturnsBadRequestWhenNullSupplied()
        {
            // arrange
            CmsApiSharedContentModel?contentPageModel = null;
            var expectedResult = HttpStatusCode.BadRequest;

            var eventMessageService = new EventMessageService <CmsApiSharedContentModel>(fakeLogger, fakeDcoumentService);

            // act
            var result = await eventMessageService.UpdateAsync(contentPageModel).ConfigureAwait(false);

            // assert
            A.CallTo(() => fakeDcoumentService.GetByIdAsync(A <Guid> .Ignored, A <string> .Ignored)).MustNotHaveHappened();
            A.CallTo(() => fakeDcoumentService.UpsertAsync(A <CmsApiSharedContentModel> .Ignored)).MustNotHaveHappened();
            A.Equals(result, expectedResult);
        }
        public async Task EventMessageServiceUpdateAsyncReturnsNotFoundWhenNotExists()
        {
            // arrange
            CmsApiSharedContentModel?existingContentPageModel = null;
            var contentPageModel = A.Fake <CmsApiSharedContentModel>();
            var expectedResult   = HttpStatusCode.NotFound;

            A.CallTo(() => fakeDcoumentService.GetByIdAsync(A <Guid> .Ignored, A <string> .Ignored)).Returns(existingContentPageModel);

            var eventMessageService = new EventMessageService <CmsApiSharedContentModel>(fakeLogger, fakeDcoumentService);

            // act
            var result = await eventMessageService.UpdateAsync(contentPageModel).ConfigureAwait(false);

            // assert
            A.CallTo(() => fakeDcoumentService.GetByIdAsync(A <Guid> .Ignored, A <string> .Ignored)).MustHaveHappenedOnceExactly();
            A.CallTo(() => fakeDcoumentService.UpsertAsync(A <CmsApiSharedContentModel> .Ignored)).MustNotHaveHappened();
            A.Equals(result, expectedResult);
        }
        public async Task EventMessageServiceUpdateAsyncReturnsSuccessForSamePartitionKey()
        {
            // arrange
            var existingContentPageModel = A.Fake <CmsApiSharedContentModel>();
            var contentPageModel         = A.Fake <CmsApiSharedContentModel>();
            var expectedResult           = HttpStatusCode.OK;

            contentPageModel.PartitionKey         = "a-partition-key";
            existingContentPageModel.PartitionKey = contentPageModel.PartitionKey;

            A.CallTo(() => fakeDcoumentService.GetByIdAsync(A <Guid> .Ignored, A <string> .Ignored)).Returns(existingContentPageModel);
            A.CallTo(() => fakeDcoumentService.UpsertAsync(A <CmsApiSharedContentModel> .Ignored)).Returns(expectedResult);

            var eventMessageService = new EventMessageService <CmsApiSharedContentModel>(fakeLogger, fakeDcoumentService);

            // act
            var result = await eventMessageService.UpdateAsync(contentPageModel).ConfigureAwait(false);

            // assert
            A.CallTo(() => fakeDcoumentService.GetByIdAsync(A <Guid> .Ignored, A <string> .Ignored)).MustHaveHappenedOnceExactly();
            A.CallTo(() => fakeDcoumentService.DeleteAsync(A <Guid> .Ignored)).MustNotHaveHappened();
            A.CallTo(() => fakeDcoumentService.UpsertAsync(A <CmsApiSharedContentModel> .Ignored)).MustHaveHappenedOnceExactly();
            A.Equals(result, expectedResult);
        }