Esempio n. 1
0
        public async Task GetResultsByCategory(bool hasMatchedProfile, int expectedNumberOfcalls)
        {
            //Arrange
            var category        = "ACategory";
            var resultsResponse = new GetResultsResponse()
            {
                SessionId = sessionId
            };

            if (hasMatchedProfile)
            {
                List <JobProfileResult> profiles = new List <JobProfileResult>
                {
                    new JobProfileResult()
                    {
                        UrlName = "Cname1", JobCategory = category
                    }
                };
                resultsResponse.JobProfiles = profiles;

                List <JobCategoryResult> categories = new List <JobCategoryResult>
                {
                    new JobCategoryResult()
                    {
                        JobFamilyName = category, JobFamilyUrl = category
                    }
                };
                resultsResponse.JobCategories = categories;
            }

            A.CallTo(() => resultsApiService.GetResults(sessionId, A <string> .Ignored)).Returns(resultsResponse);
            A.CallTo(() => jPOverviewAPIService.GetOverviewsForProfilesAsync(A <IEnumerable <string> > .Ignored)).Returns(A.CollectionOfDummy <JobProfileOverView>(2));

            //Act
            var results = await resultsService.GetResultsByCategory(category);

            //Assert
            A.CallTo(() => resultsApiService.GetResults(sessionId, category)).MustHaveHappenedOnceExactly();
            A.CallTo(() => jPOverviewAPIService.GetOverviewsForProfilesAsync(A <IEnumerable <string> > .Ignored)).MustHaveHappened(expectedNumberOfcalls, Times.Exactly);
            results.SessionId.Should().Be(sessionId);
        }
        public async Task GetOverviewsForProfilesAsync(HttpStatusCode httpStatusCode)
        {
            var expectedJobProfileOverViews = new List <JobProfileOverView>();
            int numberOfProfiles            = 51;

            for (int ii = 0; ii < numberOfProfiles; ii++)
            {
                expectedJobProfileOverViews.Add(new JobProfileOverView()
                {
                    Cname = "profile{ii}", OverViewHTML = httpStatusCode == HttpStatusCode.OK ? "<h1>Profile{ii}</h1>" : "Not Found", ReturnedStatusCode = httpStatusCode
                });
            }
            ;

            foreach (var profile in expectedJobProfileOverViews)
            {
                httpMessageHandler.When(HttpMethod.Get, $"https://localhost/segment/getbyname/{profile.Cname}").Respond(profile.ReturnedStatusCode, "text/html", profile.OverViewHTML);
            }

            var result = await JpOverviewApiService.GetOverviewsForProfilesAsync(expectedJobProfileOverViews.Select(p => p.Cname)).ConfigureAwait(false);

            result.Should().BeEquivalentTo(expectedJobProfileOverViews);
        }
Esempio n. 3
0
        public async Task <GetResultsResponse> GetResultsByCategory(string jobCategory)
        {
            var sessionId = await sessionService.GetSessionId().ConfigureAwait(false);

            var resultsResponse = await resultsApiService.GetResults(sessionId, jobCategory).ConfigureAwait(false);

            foreach (var category in resultsResponse.JobCategories)
            {
                var selectedJobprofiles = resultsResponse.JobProfiles.Where(p => p.JobCategory == category.JobFamilyName).Select(p => p.UrlName);

                if (selectedJobprofiles.Any())
                {
                    logger.LogInformation($"Getting Overview for {selectedJobprofiles.Count()} profiles for category {category.JobFamilyName}");
                    category.JobProfilesOverviews = await jPOverviewAPIService.GetOverviewsForProfilesAsync(selectedJobprofiles).ConfigureAwait(false);

                    logger.LogInformation($"Got Overview for {category.JobProfilesOverviews?.Count()} profiles for category {category.JobFamilyName}");
                }
            }

            resultsResponse.JobCategories = OrderResults(resultsResponse.JobCategories, jobCategory);
            return(resultsResponse);
        }