public async Task PagesControllerHeadJsonReturnsSuccess(string mediaTypeName)
        {
            // Arrange
            var dummyJobGroupModel = A.Dummy <JobGroupModel>();
            var controller         = BuildPagesController(mediaTypeName);
            var socRequestModel    = new SocRequestModel {
                Soc = 3231, FromJobProfileCanonicalName = "a-job-profile",
            };
            var dummyHeadViewModel = A.Dummy <HeadViewModel>();

            A.CallTo(() => FakeJobGroupDocumentService.GetAsync(A <Expression <Func <JobGroupModel, bool> > > .Ignored, A <string> .Ignored)).Returns(dummyJobGroupModel);
            A.CallTo(() => FakeMapper.Map <HeadViewModel>(A <JobGroupModel> .Ignored)).Returns(dummyHeadViewModel);

            // Act
            var result = await controller.Head(socRequestModel).ConfigureAwait(false);

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

            var jsonResult = Assert.IsType <OkObjectResult>(result);

            _ = Assert.IsAssignableFrom <HeadViewModel>(jsonResult.Value);

            controller.Dispose();
        }
        public async Task PagesControllerDocumentJsonReturnsSuccess(string mediaTypeName)
        {
            // Arrange
            var expectedResult         = A.Fake <JobGroupModel>();
            var controller             = BuildPagesController(mediaTypeName);
            var dummyDocumentViewModel = A.Dummy <DocumentViewModel>();

            dummyDocumentViewModel.HtmlHead = A.Dummy <HtmlHeadViewModel>();

            A.CallTo(() => FakeJobGroupDocumentService.GetAsync(A <Expression <Func <JobGroupModel, bool> > > .Ignored, A <string> .Ignored)).Returns(expectedResult);
            A.CallTo(() => FakeMapper.Map <DocumentViewModel>(A <JobGroupModel> .Ignored)).Returns(dummyDocumentViewModel);

            // Act
            var result = await controller.Document(3231).ConfigureAwait(false);

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

            var jsonResult = Assert.IsType <OkObjectResult>(result);

            _ = Assert.IsAssignableFrom <DocumentViewModel>(jsonResult.Value);

            controller.Dispose();
        }
        public async Task PagesControllerDocumentReturnsNotAcceptable(string mediaTypeName)
        {
            // Arrange
            var expectedResult         = A.Fake <JobGroupModel>();
            var controller             = BuildPagesController(mediaTypeName);
            var dummyDocumentViewModel = A.Dummy <DocumentViewModel>();

            dummyDocumentViewModel.HtmlHead = A.Dummy <HtmlHeadViewModel>();

            A.CallTo(() => FakeJobGroupDocumentService.GetAsync(A <Expression <Func <JobGroupModel, bool> > > .Ignored, A <string> .Ignored)).Returns(expectedResult);
            A.CallTo(() => FakeMapper.Map <DocumentViewModel>(A <JobGroupModel> .Ignored)).Returns(dummyDocumentViewModel);

            // Act
            var result = await controller.Document(3231).ConfigureAwait(false);

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

            var statusResult = Assert.IsType <StatusCodeResult>(result);

            A.Equals((int)HttpStatusCode.NotAcceptable, statusResult.StatusCode);

            controller.Dispose();
        }
        public async Task PagesControllerDocumentHtmlReturnsSuccess(string mediaTypeName)
        {
            // Arrange
            var expectedResult = A.Fake <JobGroupModel>();
            var controller     = BuildPagesController(mediaTypeName);
            var expectedModel  = new DocumentViewModel
            {
                Id           = Guid.NewGuid(),
                Soc          = 3231,
                Title        = "A title",
                PartitionKey = "partition-key",
            };

            A.CallTo(() => FakeJobGroupDocumentService.GetAsync(A <Expression <Func <JobGroupModel, bool> > > .Ignored, A <string> .Ignored)).Returns(expectedResult);
            A.CallTo(() => FakeMapper.Map <DocumentViewModel>(A <JobGroupModel> .Ignored)).Returns(expectedModel);

            // Act
            var result = await controller.Document(expectedModel.Soc).ConfigureAwait(false);

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

            var viewResult = Assert.IsType <ViewResult>(result);

            _ = Assert.IsAssignableFrom <DocumentViewModel>(viewResult.ViewData.Model);
            var model = viewResult.ViewData.Model as DocumentViewModel;

            Assert.Equal(expectedModel, model);

            controller.Dispose();
        }
        public async Task PagesControllerBodyReturnsNotAcceptable(string mediaTypeName)
        {
            // Arrange
            var dummyJobGroupModel = A.Dummy <JobGroupModel>();
            var controller         = BuildPagesController(mediaTypeName);
            var socRequestModel    = new SocRequestModel {
                Soc = 3231, FromJobProfileCanonicalName = "a-job-profile",
            };
            var dummyBodyViewModel = A.Dummy <BodyViewModel>();

            A.CallTo(() => FakeJobGroupDocumentService.GetAsync(A <Expression <Func <JobGroupModel, bool> > > .Ignored, A <string> .Ignored)).Returns(dummyJobGroupModel);
            A.CallTo(() => FakeMapper.Map <BodyViewModel>(A <JobGroupModel> .Ignored)).Returns(dummyBodyViewModel);

            // Act
            var result = await controller.Body(socRequestModel).ConfigureAwait(false);

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

            var statusResult = Assert.IsType <StatusCodeResult>(result);

            A.Equals((int)HttpStatusCode.NotAcceptable, statusResult.StatusCode);

            controller.Dispose();
        }
        public async Task PagesControllerSideBarRightJsonReturnsSuccess(string mediaTypeName)
        {
            // Arrange
            var dummyJobGroupModel    = A.Dummy <JobGroupModel>();
            var dummyContentItemModel = A.Dummy <ContentItemModel>();
            var controller            = BuildPagesController(mediaTypeName);
            var socRequestModel       = new SocRequestModel {
                Soc = 3231, FromJobProfileCanonicalName = "a-job-profile",
            };
            var dummySideBarRightViewModel = A.Dummy <SideBarRightViewModel>();

            dummySideBarRightViewModel.JobProfiles = new List <JobProfileViewModel> {
                new JobProfileViewModel {
                    CanonicalName = socRequestModel.FromJobProfileCanonicalName, Title = "A title"
                },
            };

            A.CallTo(() => FakeJobGroupDocumentService.GetAsync(A <Expression <Func <JobGroupModel, bool> > > .Ignored, A <string> .Ignored)).Returns(dummyJobGroupModel);
            A.CallTo(() => FakeMapper.Map <SideBarRightViewModel>(A <JobGroupModel> .Ignored)).Returns(dummySideBarRightViewModel);
            A.CallTo(() => FakeSharedContentDocumentService.GetByIdAsync(A <Guid> .Ignored, A <string> .Ignored)).Returns(dummyContentItemModel);

            // Act
            var result = await controller.SideBarRight(socRequestModel).ConfigureAwait(false);

            // Assert
            A.CallTo(() => FakeJobGroupDocumentService.GetAsync(A <Expression <Func <JobGroupModel, bool> > > .Ignored, A <string> .Ignored)).MustHaveHappenedOnceExactly();
            A.CallTo(() => FakeMapper.Map <SideBarRightViewModel>(A <JobGroupModel> .Ignored)).MustHaveHappenedOnceExactly();
            A.CallTo(() => FakeSharedContentDocumentService.GetByIdAsync(A <Guid> .Ignored, A <string> .Ignored)).MustHaveHappenedOnceExactly();

            var jsonResult = Assert.IsType <OkObjectResult>(result);

            _ = Assert.IsAssignableFrom <SideBarRightViewModel>(jsonResult.Value);

            controller.Dispose();
        }
        public async Task PagesControllerSideBarRightReturnsNoContentWhenNoData(string mediaTypeName)
        {
            // Arrange
            JobGroupModel?nullJobGroupModel = null;
            var           controller        = BuildPagesController(mediaTypeName);
            var           socRequestModel   = new SocRequestModel {
                Soc = 3231, FromJobProfileCanonicalName = "a-job-profile",
            };

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

            // Act
            var result = await controller.SideBarRight(socRequestModel).ConfigureAwait(false);

            // Assert
            A.CallTo(() => FakeJobGroupDocumentService.GetAsync(A <Expression <Func <JobGroupModel, bool> > > .Ignored, A <string> .Ignored)).MustHaveHappenedOnceExactly();
            A.CallTo(() => FakeMapper.Map <SideBarRightViewModel>(A <JobGroupModel> .Ignored)).MustNotHaveHappened();
            A.CallTo(() => FakeSharedContentDocumentService.GetByIdAsync(A <Guid> .Ignored, A <string> .Ignored)).MustNotHaveHappened();

            var statusResult = Assert.IsType <NoContentResult>(result);

            A.Equals((int)HttpStatusCode.NoContent, statusResult.StatusCode);

            controller.Dispose();
        }
コード例 #8
0
        public async Task PagesControllerBreadcrumbJsonReturnsSuccess(string mediaTypeName)
        {
            // Arrange
            var socRequestModel = new SocRequestModel {
                Soc = 3231, FromJobProfileCanonicalName = "a-job-profile",
            };
            var dummyJobGroupModel = A.Dummy <JobGroupModel>();

            dummyJobGroupModel.JobProfiles = new List <JobProfileModel> {
                new JobProfileModel {
                    CanonicalName = socRequestModel.FromJobProfileCanonicalName, Title = "A title"
                },
            };
            var controller          = BuildPagesController(mediaTypeName);
            var breadcrumbViewModel = new BreadcrumbViewModel
            {
                Breadcrumbs = new List <BreadcrumbItemViewModel>
                {
                    new BreadcrumbItemViewModel
                    {
                        Title = "Home: Explore careers",
                        Route = "/",
                    },
                    new BreadcrumbItemViewModel
                    {
                        Title = dummyJobGroupModel.JobProfiles.First().Title,
                        Route = $"/job-profiles/" + dummyJobGroupModel.JobProfiles.First().CanonicalName,
                    },
                    new BreadcrumbItemViewModel
                    {
                        Title        = "Job group LMI",
                        Route        = $"/{PagesController.RegistrationPath}",
                        AddHyperlink = false,
                    },
                },
            };

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

            // Act
            var result = await controller.Breadcrumb(socRequestModel).ConfigureAwait(false);

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

            var jsonResult = Assert.IsType <OkObjectResult>(result);

            Assert.IsAssignableFrom <BreadcrumbViewModel>(jsonResult.Value);
            var viewModel = jsonResult.Value as BreadcrumbViewModel;

            Assert.Equal(breadcrumbViewModel.Breadcrumbs[1].Title, viewModel?.Breadcrumbs?[1].Title);
            Assert.Equal(breadcrumbViewModel.Breadcrumbs[1].Route, viewModel?.Breadcrumbs?[1].Route);

            controller.Dispose();
        }
        public async Task PagesControllerDocumentReturnsNoContentWhenNoData(string mediaTypeName)
        {
            // Arrange
            JobGroupModel?expectedResult = null;
            var           controller     = BuildPagesController(mediaTypeName);

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

            // Act
            var result = await controller.Document(3231).ConfigureAwait(false);

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

            var statusResult = Assert.IsType <NoContentResult>(result);

            A.Equals((int)HttpStatusCode.NoContent, statusResult.StatusCode);

            controller.Dispose();
        }
コード例 #10
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);
        }