public void SearchAds_CategoryGroupIsSelected_CallAdRepoWithSubCategoriesIds() { // Given IList <SearchAdCache> searchResult = new List <SearchAdCache>(); searchResult.Add(new SearchAdCache { Title = "ship", City = new City() { Label = "the city" }, Category = new Bea.Domain.Categories.Category() }); Category group = new Category(); group.AddCategory(new Category { Id = 12 }); group.AddCategory(new Category { Id = 17 }); var adRepoMock = new Moq.Mock <ISearchRepository>(); adRepoMock.Setup(r => r.SearchAds(new string[] { "ship" }, null, new int[] { 12, 17 })).Returns(searchResult); var repoMock = new Moq.Mock <IRepository>(); repoMock.Setup(r => r.Get <Category>(12)).Returns(group); AdvancedAdSearchModel model = new AdvancedAdSearchModel() { SearchString = "ship", CategorySelectedId = 12 }; SearchServices service = new SearchServices(repoMock.Object, null, adRepoMock.Object, null, null, null); // When AdSearchResultModel result = service.LightSearchAds(model); // Then Assert.AreEqual("ship", result.SearchString); Assert.IsNull(result.CitySelectedId); Assert.AreEqual(12, result.CategorySelectedId); Assert.AreEqual(1, result.SearchResult.Count); Assert.AreEqual(1, result.SearchResultTotalCount); Assert.AreEqual("ship", result.SearchResult[0].Title); adRepoMock.VerifyAll(); }
public void SearchAds_2SearchString_CallAdRepoWithSeveralWords() { // Given IList <SearchAdCache> searchResult = new List <SearchAdCache>(); searchResult.Add(new SearchAdCache { Title = "ship", City = new City() { Label = "the city" }, Category = new Bea.Domain.Categories.Category() }); searchResult.Add(new SearchAdCache { Title = "computer", City = new City() { Label = "the city" }, Category = new Bea.Domain.Categories.Category() }); var adRepoMock = new Moq.Mock <ISearchRepository>(); adRepoMock.Setup(r => r.SearchAds(new string[] { "ship", "computer" }, 98, null)).Returns(searchResult); AdvancedAdSearchModel model = new AdvancedAdSearchModel() { SearchString = "ship computer", CitySelectedId = 98 }; SearchServices service = new SearchServices(null, null, adRepoMock.Object, null, null, null); // When AdSearchResultModel result = service.LightSearchAds(model); // Then Assert.AreEqual("ship computer", result.SearchString); Assert.AreEqual(98, result.CitySelectedId); Assert.AreEqual(2, result.SearchResult.Count); Assert.AreEqual(2, result.SearchResultTotalCount); Assert.AreEqual("ship", result.SearchResult[0].Title); Assert.AreEqual("computer", result.SearchResult[1].Title); adRepoMock.VerifyAll(); }
public void AdvancedSearchAds_SearchThroughAds_CallSearchRepoOnAds() { // Given Category cat = new Category { Id = 1, LabelUrlPart = "cat-url-label", Label = "Label", Type = AdTypeEnum.Ad }; AdSearchModel model = new AdSearchModel(); model.CategorySelectedId = 1; model.SearchString = "toto"; model.CitySelectedId = 12; IList <SearchAdCache> searchResult = new List <SearchAdCache>(); searchResult.Add(new SearchAdCache { Title = "ship", City = new City() { Label = "the city" }, Category = cat }); var repoMock = new Moq.Mock <IRepository>(); repoMock.Setup(r => r.Get <Category>(cat.Id)).Returns(cat); var searchRepoMock = new Moq.Mock <ISearchRepository>(); searchRepoMock.Setup(r => r.SearchAds(It.Is <String[]>(x => x[0] == "toto"), 12, It.Is <int[]>(x => x[0] == 1))).Returns(searchResult); SearchServices service = new SearchServices(repoMock.Object, null, searchRepoMock.Object, null, null, null); // When AdSearchResultModel result = service.LightSearchAds(model); // Then Assert.AreEqual(1, result.SearchResultTotalCount); }