Example #1
0
        public async Task PagesControllerCallsContentPageServiceUsingPagesRouteForOkResult(string route, int soc, string actionMethod)
        {
            // Arrange
            var controller     = BuildController(route);
            var expectedResult = new JobGroupModel()
            {
                Title = "A title",
            };
            var expectedResults = new List <JobGroupModel> {
                expectedResult
            };
            var expectedViewModel = new DocumentViewModel {
                Title = "A title", Head = A.Dummy <HeadViewModel>(),
            };

            A.CallTo(() => FakeJobGroupDocumentService.GetAllAsync(A <string> .Ignored)).Returns(expectedResults);
            A.CallTo(() => FakeJobGroupDocumentService.GetByIdAsync(A <Guid> .Ignored, A <string> .Ignored)).Returns(expectedResult);
            A.CallTo(() => FakeMapper.Map <DocumentViewModel>(A <JobGroupModel> .Ignored)).Returns(expectedViewModel);

            // Act
            var result = await RunControllerAction(controller, soc, actionMethod).ConfigureAwait(false);

            // Assert
            Assert.IsType <OkObjectResult>(result);
            A.CallTo(() => FakeJobGroupDocumentService.GetAllAsync(A <string> .Ignored)).MustHaveHappenedOnceOrLess();
            A.CallTo(() => FakeJobGroupDocumentService.GetByIdAsync(A <Guid> .Ignored, A <string> .Ignored)).MustHaveHappenedOnceOrLess();

            controller.Dispose();
        }
        public async Task JobGroupPublishedRefreshServiceReloadItemForNonExistingJobGroupIsSuccessful()
        {
            // arrange
            const HttpStatusCode expectedResult = HttpStatusCode.OK;
            JobGroupModel?       nullJobGroup   = null;
            var getDetailResponse = new JobGroupModel
            {
                Soc   = 2,
                Title = "A title 2",
            };

            A.CallTo(() => fakeJobGroupApiConnector.GetDetailsAsync(A <Uri> .Ignored)).Returns(getDetailResponse);
            A.CallTo(() => fakeJobGroupDocumentService.GetAsync(A <Expression <Func <JobGroupModel, bool> > > .Ignored, A <string> .Ignored)).Returns(nullJobGroup);
            A.CallTo(() => fakeJobGroupDocumentService.UpsertAsync(A <JobGroupModel> .Ignored)).Returns(HttpStatusCode.OK);

            // act
            var result = await jobGroupPublishedRefreshService.ReloadItemAsync(new Uri("https://somewhere.com", UriKind.Absolute)).ConfigureAwait(false);

            // assert
            A.CallTo(() => fakeJobGroupApiConnector.GetDetailsAsync(A <Uri> .Ignored)).MustHaveHappenedOnceExactly();
            A.CallTo(() => fakeJobGroupDocumentService.GetAsync(A <Expression <Func <JobGroupModel, bool> > > .Ignored, A <string> .Ignored)).MustHaveHappenedOnceExactly();
            A.CallTo(() => fakeJobGroupDocumentService.DeleteAsync(A <Guid> .Ignored)).MustNotHaveHappened();
            A.CallTo(() => fakeJobGroupDocumentService.UpsertAsync(A <JobGroupModel> .Ignored)).MustHaveHappenedOnceExactly();

            Assert.Equal(expectedResult, result);
        }
        public async Task JobGroupPublishedRefreshServiceReloadIsSuccessful()
        {
            // arrange
            const HttpStatusCode expectedResult = HttpStatusCode.OK;
            var existingJobGroup   = A.Dummy <JobGroupModel>();
            var getSummaryResponse = new List <JobGroupSummaryItemModel>
            {
                new JobGroupSummaryItemModel
                {
                    Id    = Guid.NewGuid(),
                    Soc   = 1,
                    Title = "A title 1",
                },
                new JobGroupSummaryItemModel
                {
                    Id    = Guid.NewGuid(),
                    Soc   = 2,
                    Title = "A title 2",
                },
            };
            var getDetailResponse = new JobGroupModel
            {
                Id    = Guid.NewGuid(),
                Soc   = 2,
                Title = "A title 2",
            };

            A.CallTo(() => fakeJobGroupApiConnector.GetSummaryAsync(A <Uri> .Ignored)).Returns(getSummaryResponse);
            A.CallTo(() => fakeJobGroupDocumentService.PurgeAsync()).Returns(true);
            A.CallTo(() => fakeJobGroupApiConnector.GetDetailsAsync(A <Uri> .Ignored)).Returns(getDetailResponse);
            A.CallTo(() => fakeJobGroupDocumentService.GetAsync(A <Expression <Func <JobGroupModel, bool> > > .Ignored, A <string> .Ignored)).Returns(existingJobGroup);
            A.CallTo(() => fakeJobGroupDocumentService.UpsertAsync(A <JobGroupModel> .Ignored)).Returns(HttpStatusCode.OK);

            // act
            var result = await jobGroupPublishedRefreshService.ReloadAsync(new Uri("https://somewhere.com", UriKind.Absolute)).ConfigureAwait(false);

            // assert
            A.CallTo(() => fakeJobGroupApiConnector.GetSummaryAsync(A <Uri> .Ignored)).MustHaveHappenedOnceExactly();
            A.CallTo(() => fakeJobGroupDocumentService.PurgeAsync()).MustHaveHappenedOnceExactly();
            A.CallTo(() => fakeJobGroupApiConnector.GetDetailsAsync(A <Uri> .Ignored)).MustHaveHappened(getSummaryResponse.Count, Times.Exactly);
            A.CallTo(() => fakeJobGroupDocumentService.GetAsync(A <Expression <Func <JobGroupModel, bool> > > .Ignored, A <string> .Ignored)).MustHaveHappened(getSummaryResponse.Count, Times.Exactly);
            A.CallTo(() => fakeJobGroupDocumentService.UpsertAsync(A <JobGroupModel> .Ignored)).MustHaveHappened(getSummaryResponse.Count, Times.Exactly);

            Assert.Equal(expectedResult, result);
        }
        public async Task LmiTransformationApiConnectorTestsGetDetailsReturnsSuccess()
        {
            // arrange
            var expectedResult = new JobGroupModel
            {
                Soc   = 3543,
                Title = "A title",
            };

            A.CallTo(() => fakeApiDataConnector.GetAsync <JobGroupModel>(A <HttpClient> .Ignored, A <Uri> .Ignored)).Returns(expectedResult);

            // act
            var result = await lmiTransformationApiConnector.GetDetailsAsync(new Uri("https://somewhere.com", UriKind.Absolute)).ConfigureAwait(false);

            // assert
            A.CallTo(() => fakeApiDataConnector.GetAsync <JobGroupModel>(A <HttpClient> .Ignored, A <Uri> .Ignored)).MustHaveHappenedOnceExactly();
            Assert.NotNull(result);
            Assert.Equal(expectedResult.Soc, result?.Soc);
            Assert.Equal(expectedResult.Title, result?.Title);
        }
        public async Task JobGroupApiConnectorTestsGetDetailForIdReturnsSuccess()
        {
            // arrange
            var expectedResult = new JobGroupModel
            {
                Soc   = 3543,
                Title = "A title",
            };

            A.CallTo(() => fakeApiDataConnector.GetAsync <JobGroupModel>(A <HttpClient> .Ignored, A <Uri> .Ignored)).Returns(expectedResult);

            // act
            var result = await publishedJobGroupApiConnector.GetDetailAsync(Guid.NewGuid()).ConfigureAwait(false);

            // assert
            A.CallTo(() => fakeApiDataConnector.GetAsync <JobGroupModel>(A <HttpClient> .Ignored, A <Uri> .Ignored)).MustHaveHappenedOnceExactly();
            Assert.NotNull(result);
            Assert.Equal(expectedResult.Soc, result?.Soc);
            Assert.Equal(expectedResult.Title, result?.Title);
        }
Example #6
0
        public async Task ApiControllerGetDetailBySocReturnsSuccess()
        {
            // Arrange
            var getDetailResponse = new JobGroupModel
            {
                Id    = Guid.NewGuid(),
                Soc   = 1,
                Title = "A title 1",
            };
            var controller = BuildApiController();

            A.CallTo(() => FakeJobGroupDocumentService.GetAsync(A <Expression <Func <JobGroupModel, bool> > > .Ignored, A <string> .Ignored)).Returns(getDetailResponse);

            // Act
            var result = await controller.Get(3543).ConfigureAwait(false);

            // Assert
            A.CallTo(() => FakeJobGroupDocumentService.GetAsync(A <Expression <Func <JobGroupModel, bool> > > .Ignored, A <string> .Ignored)).MustHaveHappenedOnceExactly();

            Assert.Equal(getDetailResponse, result);
        }
Example #7
0
        public JobGroupDataServiceTests()
        {
            jobGroupDataService = new JobGroupDataService(fakeLogger, fakeDraftJobGroupApiConnector, fakePublishedJobGroupApiConnector);

            draftJobGroupSummaryItemModels = new List <JobGroupSummaryItemModel>
            {
                new JobGroupSummaryItemModel
                {
                    Soc = Soc1111,
                },
                new JobGroupSummaryItemModel
                {
                    Soc = Soc2222,
                },
            };
            publishedJobGroupSummaryItemModels = new List <JobGroupSummaryItemModel>
            {
                new JobGroupSummaryItemModel
                {
                    Soc = Soc2222,
                },
                new JobGroupSummaryItemModel
                {
                    Soc = Soc3333,
                },
            };
            dummyDraftJobGroupModel01 = new JobGroupModel
            {
                Soc = Soc1111,
            };
            dummyDraftJobGroupModel02 = new JobGroupModel
            {
                Soc = Soc2222,
            };
            dummyPublishedJobGroupModel02 = new JobGroupModel
            {
                Soc = Soc2222,
            };
            dummyPublishedJobGroupModel03 = new JobGroupModel
            {
                Soc = Soc3333,
            };
            dummyDraftJobGroupModels     = new[] { dummyDraftJobGroupModel01, dummyDraftJobGroupModel02 };
            dummyPublishedJobGroupModels = new[] { dummyPublishedJobGroupModel02, dummyPublishedJobGroupModel03 };
            expectedGetAllResult         = new FullDeltaReportModel
            {
                DeltaReportSocs = new List <DeltaReportSocModel>
                {
                    new DeltaReportSocModel
                    {
                        Soc               = Soc1111,
                        DraftJobGroup     = dummyDraftJobGroupModel01,
                        PublishedJobGroup = null,
                    },
                    new DeltaReportSocModel
                    {
                        Soc               = Soc2222,
                        DraftJobGroup     = dummyDraftJobGroupModel02,
                        PublishedJobGroup = dummyPublishedJobGroupModel02,
                    },
                    new DeltaReportSocModel
                    {
                        Soc               = Soc3333,
                        DraftJobGroup     = null,
                        PublishedJobGroup = dummyPublishedJobGroupModel03,
                    },
                },
            };
            expectedGetSocResult = new FullDeltaReportModel
            {
                DeltaReportSocs = new List <DeltaReportSocModel>
                {
                    new DeltaReportSocModel
                    {
                        Soc               = Soc2222,
                        DraftJobGroup     = dummyDraftJobGroupModel02,
                        PublishedJobGroup = dummyPublishedJobGroupModel02,
                    },
                },
            };
        }