public async Task GetProfileByFieldsTest_WhenMatchInDBByMoreThenOneField_ReturnResultsString()
        {
            //Arange
            var data = new List <ProfileDetails>
            {
                new ProfileDetails {
                    name = "BBB", currentTitle = "ccc"
                }
            }.AsQueryable();


            mockProfileDetailsSet.As <IQueryable <ProfileDetails> >().Setup(m => m.Provider).Returns(data.Provider);
            mockProfileDetailsSet.As <IQueryable <ProfileDetails> >().Setup(m => m.Expression).Returns(data.Expression);
            mockProfileDetailsSet.As <IQueryable <ProfileDetails> >().Setup(m => m.ElementType).Returns(data.ElementType);

            //Act
            SearchableFields searchableFields = new SearchableFields();

            searchableFields.name         = "BBB";
            searchableFields.currentTitle = "ccc";
            HttpResponseMessage res = await linkedinProfileController.GetProfileByFields(searchableFields);

            //Assert
            if (res.StatusCode == HttpStatusCode.OK)
            {
                Assert.IsInstanceOfType(res, typeof(HttpResponseMessage));
            }
            else
            {
                Assert.Fail();
            }
        }
Beispiel #2
0
        private void DoCustomSearch()
        {
            var searchClauses = SearchableFields.Where(f => f.IsFilled).Select(f => f.GetSearchQuery());
            var searchString  = string.Join(" AND ", searchClauses.Select(c => string.Format("( {0} )", c)));

            SearchQuery = searchString;
            DoSearch();
        }
Beispiel #3
0
        public async Task <HttpResponseMessage> GetProfileByFields([FromUri] SearchableFields searchableFields)
        {
            HttpResponseMessage result;

            if (!ModelState.IsValid)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState));
            }

            try
            {
                if ((searchableFields.currentPosition == null) &&
                    (searchableFields.currentTitle == null) &&
                    (searchableFields.name == null) &&
                    (searchableFields.summary == null))
                {
                    result         = new HttpResponseMessage(HttpStatusCode.OK);
                    result.Content = new StringContent("SearchProfileByFields must contain at least one value");
                    return(result);
                }

                List <ProfileDetails> matchProfiles = await pesrsistenceManager.searchByFields(searchableFields);

                if (matchProfiles != null && matchProfiles.Count > 0)
                {
                    var responseData = JsonConvert.SerializeObject(matchProfiles, new JsonSerializerSettings
                    {
                        ReferenceLoopHandling = ReferenceLoopHandling.Ignore
                    });

                    result         = new HttpResponseMessage(HttpStatusCode.OK);
                    result.Content = new StringContent(responseData);
                    return(result);
                }
                else
                {
                    result         = new HttpResponseMessage(HttpStatusCode.OK);
                    result.Content = new StringContent("Profile Not Found");
                    return(result);
                }
            }
            catch (Exception ex)
            {
                // Log exception code goes here
                result         = new HttpResponseMessage(HttpStatusCode.InternalServerError);
                result.Content = new StringContent("Error occured while executing GetProfileByFields" + ex.ToString());
                return(result);
            }
        }
        public async Task GetProfileByFieldsTest_WhenNoMatchInDBByOneField_ReturnNoResultsString()
        {
            //Arange
            var data = new List <ProfileDetails>
            {
                new ProfileDetails {
                    name = "BBB"
                }
            }.AsQueryable();


            mockProfileDetailsSet.As <IQueryable <ProfileDetails> >().Setup(m => m.Provider).Returns(data.Provider);
            mockProfileDetailsSet.As <IQueryable <ProfileDetails> >().Setup(m => m.Expression).Returns(data.Expression);
            mockProfileDetailsSet.As <IQueryable <ProfileDetails> >().Setup(m => m.ElementType).Returns(data.ElementType);

            //Act
            SearchableFields searchableFields = new SearchableFields();

            searchableFields.name = "aaa";
            HttpResponseMessage res = await linkedinProfileController.GetProfileByFields(searchableFields);

            //Assert
            if (res.StatusCode == HttpStatusCode.OK)
            {
                var responseString = res.Content.ReadAsStringAsync().Result;
                if ("Profile Not Found" == responseString.ToString())
                {
                    Assert.IsInstanceOfType(res, typeof(HttpResponseMessage));
                }
                else
                {
                    Assert.Fail();
                }
            }
            else
            {
                Assert.Fail();
            }
        }
        public async Task GetProfileByFieldsTest_NoFieldsForSearch_ReturnNoResultsString()
        {
            //Arange
            var data = new List <ProfileDetails>
            {
                new ProfileDetails {
                    name = "BBB", currentTitle = "ccc"
                }
            }.AsQueryable();


            mockProfileDetailsSet.As <IQueryable <ProfileDetails> >().Setup(m => m.Provider).Returns(data.Provider);
            mockProfileDetailsSet.As <IQueryable <ProfileDetails> >().Setup(m => m.Expression).Returns(data.Expression);
            mockProfileDetailsSet.As <IQueryable <ProfileDetails> >().Setup(m => m.ElementType).Returns(data.ElementType);

            //Act
            SearchableFields    searchableFields = new SearchableFields();
            HttpResponseMessage res = await linkedinProfileController.GetProfileByFields(searchableFields);

            //Assert
            if (res.StatusCode == HttpStatusCode.OK)
            {
                var responseString = res.Content.ReadAsStringAsync().Result;
                if ("SearchProfileByFields must contain at least one value" == responseString.ToString())
                {
                    Assert.IsInstanceOfType(res, typeof(HttpResponseMessage));
                }
                else
                {
                    Assert.Fail();
                }
            }
            else
            {
                Assert.Fail();
            }
        }
Beispiel #6
0
 public void AddIndex(params string[] fields)
 {
     SearchableFields.AddRange(fields);
     IndexDocuments(Documents, SearchableFields);
 }