public async Task When_OccupationSearchAutoFindsOccupations_Then_ShouldReturnOccupations()
        {
            var sut = new OccupationSearchController(_serviceTaxonomyRepository, _settings, _compositeSettings, _sessionService);

            var occupations = await sut.OccupationSearchAuto("Renewable");

            occupations.Should().NotBeNull();
            occupations.Should().BeOfType <OkObjectResult>();
        }
        public void  When_OccupationSearch_Then_ShouldReturnOccupations()
        {
            var sut = new OccupationSearchController(_serviceTaxonomyRepository, _settings, _compositeSettings, _sessionService);

            var occupations = sut.OccupationSearch("renewable");

            occupations.Result.Should().NotBeNull();
            occupations.Result.Count().Should().BeGreaterThan(0);
        }
        public void When_HeadCalled_ReturnHtml()
        {
            var sut = new OccupationSearchController(_serviceTaxonomyRepository, _settings, _compositeSettings, _sessionService);

            sut.ControllerContext.HttpContext = new DefaultHttpContext();
            var result = sut.Head() as ViewResult;

            result.Should().NotBeNull();
            result.Should().BeOfType <ViewResult>();
            result.ViewName.Should().BeNull();
        }
        public void  When_GetOccupationIdFromName_Then_ShouldReturnOccupationId()
        {
            var handlerMock = MockHelpers.GetMockMessageHandler(SkillsJson);
            var restClient  = new RestClient(handlerMock.Object);

            _serviceTaxonomyRepository = new ServiceTaxonomyRepository(restClient);
            var sut = new OccupationSearchController(_serviceTaxonomyRepository, _settings, _compositeSettings, _sessionService);

            var result = sut.GetOccupationIdFromName("Renewable energy consultant");

            result.Result.Should().Be("http://data.europa.eu/esco/occupation/114e1eff-215e-47df-8e10-45a5b72f8197");
        }
        public async Task When_OccupationSearchAutoFails_Then_ShouldReturnNoContent()
        {
            // @ToDo: Do this properly. For now we'll set up a local mock for this test.
            var m   = MockHelpers.GetMockMessageHandler("{}");
            var rc  = new RestClient(m.Object);
            var str = new ServiceTaxonomyRepository(rc);

            var sut = new OccupationSearchController(str, _settings, _compositeSettings, _sessionService);

            var occupations = await sut.OccupationSearchAuto("fgsdhfgsdf");

            occupations.Should().NotBeNull();
            occupations.Should().BeOfType <NoContentResult>();
        }
        public async Task WhenBody_Called_ReturnHtml()
        {
            var sut = new OccupationSearchController(_serviceTaxonomyRepository, _settings, _compositeSettings, _sessionService);

            sut.ControllerContext = new ControllerContext
            {
                HttpContext = new DefaultHttpContext()
            };
            var result = await sut.Body() as ViewResult;

            await _sessionService.Received(1).CreateUserSession(Arg.Any <CreateSessionRequest>());

            result.Should().NotBeNull();
            result.Should().BeOfType <ViewResult>();
            result.ViewName.Should().BeNull();
            result.ViewData.Model.As <OccupationSearchCompositeViewModel>().HasError.Should().BeFalse();
        }
        public void When_SearchSkill_Then_RedirectToSelectSkillsView()
        {
            var _sessionService = Substitute.For <ISessionService>();

            var handlerMock = MockHelpers.GetMockMessageHandler(SkillsJson);
            var restClient  = new RestClient(handlerMock.Object);

            _serviceTaxonomyRepository = new ServiceTaxonomyRepository(restClient);

            var sut = new OccupationSearchController(_serviceTaxonomyRepository, _settings, _compositeSettings, _sessionService);

            sut.ControllerContext = new ControllerContext {
                HttpContext = new DefaultHttpContext()
            };

            sut.ControllerContext = MockHelpers.GetControllerContext();
            _sessionService.GetUserSession().ReturnsForAnyArgs(MockHelpers.GetUserSession(false));

            sut.GetSkillsForOccupation("Renewable energy consultant");
        }