Example #1
0
        public void QuickSearch_Test()
        {
            // Given
            AdSearchModel sM = new AdSearchModel();

            sM.SearchString   = "verre";
            sM.CitySelectedId = 45;

            Category c1 = new Category
            {
                Label = "Vehicule",
            };
            Category c2 = new Category
            {
                Label = "Voiture",
            };

            c1.AddCategory(c2);
            Category c3 = new Category
            {
                Label = "Moto",
            };

            c1.AddCategory(c3);

            Category c4 = new Category
            {
                Label = "Maison",
            };
            Category c5 = new Category
            {
                Label = "Meuble",
            };

            c4.AddCategory(c5);
            Category c6 = new Category
            {
                Label = "Vaisselle",
            };

            c4.AddCategory(c6);

            IDictionary <Category, int> res = new Dictionary <Category, int>();

            res.Add(c2, 2);
            res.Add(c3, 1);
            res.Add(c6, 6);

            var searchRepoMock = new Moq.Mock <ISearchRepository>();

            searchRepoMock.Setup(x =>
                                 x.CountByCategory(It.Is <string[]>(b => b[0] == sM.SearchString), It.Is <int?>(i => i.Value == sM.CitySelectedId)))
            .Returns(res);

            SearchServices service = new SearchServices(null, null, searchRepoMock.Object, null, null, null);

            // When
            AdHomeSearchResultModel ress = service.QuickSearch(sM);

            // Then
            Assert.AreEqual(sM.CitySelectedId, ress.CitySelectedId);
            Assert.AreEqual(sM.SearchString, ress.SearchString);
            Assert.AreEqual(9, ress.SearchResultTotalCount);
            Assert.AreEqual(2, ress.Results.Count);
            Assert.AreEqual(3, ress.Results[0].ResultCount);
            Assert.AreEqual("Vehicule", ress.Results[0].CategoryLabel);
            Assert.AreEqual("Voiture", ress.Results[0].SubCategoriesResults[0].CategoryLabel);
            Assert.AreEqual(2, ress.Results[0].SubCategoriesResults[0].ResultCount);
            Assert.AreEqual(0, ress.Results[0].SubCategoriesResults[0].SubCategoriesResults.Count);
            Assert.AreEqual("Moto", ress.Results[0].SubCategoriesResults[1].CategoryLabel);
            Assert.AreEqual(1, ress.Results[0].SubCategoriesResults[1].ResultCount);
            Assert.AreEqual(0, ress.Results[0].SubCategoriesResults[1].SubCategoriesResults.Count);

            Assert.AreEqual(6, ress.Results[1].ResultCount);
            Assert.AreEqual("Maison", ress.Results[1].CategoryLabel);
            Assert.AreEqual("Vaisselle", ress.Results[1].SubCategoriesResults[0].CategoryLabel);
            Assert.AreEqual(6, ress.Results[1].SubCategoriesResults[0].ResultCount);
            Assert.AreEqual(0, ress.Results[1].SubCategoriesResults[0].SubCategoriesResults.Count);
        }