Example #1
0
        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();
        }
Example #2
0
        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();
        }
Example #3
0
        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);
        }