Пример #1
0
        public void GetAllCategoriesAndGroups_ReturnCategoriesClassedByGroup()
        {
            // Given
            Category g1 = new Category { Id = 1, Label = "first" };
            Category g2 = new Category { Id = 3, Label = "second" };
            Category g3 = new Category { Id = 7, Label = "third" };

            Category c1 = new Category { Id = 2, Label = "first c1" };
            g1.AddCategory(c1);
            Category c2 = new Category { Id = 4, Label = "second c2" };
            g2.AddCategory(c2);
            Category c3 = new Category { Id = 6, Label = "second c3" };
            g2.AddCategory(c3);
            Category c4 = new Category { Id = 5, Label = "third c4" };
            g3.AddCategory(c4);

            var repoMock = new Moq.Mock<IRepository>();
            repoMock.Setup(x => x.GetAll<Category>()).Returns(new List<Category>() { g1, g2, g3 });

            CategoryServices service = new CategoryServices(repoMock.Object, null);

            // When
            IList<CategoryItemModel> result = service.GetAllCategoriesAndGroups();

            // Then
            Assert.AreEqual(1, result[0].Id);
            Assert.AreEqual("FIRST", result[0].Label);
            Assert.IsTrue(result[0].IsGroup);

            Assert.AreEqual(2, result[1].Id);
            Assert.AreEqual("first c1", result[1].Label);
            Assert.IsFalse(result[1].IsGroup);

            Assert.AreEqual(3, result[2].Id);
            Assert.AreEqual("SECOND", result[2].Label);
            Assert.IsTrue(result[2].IsGroup);

            Assert.AreEqual(4, result[3].Id);
            Assert.AreEqual("second c2", result[3].Label);
            Assert.IsFalse(result[3].IsGroup);

            Assert.AreEqual(6, result[4].Id);
            Assert.AreEqual("second c3", result[4].Label);
            Assert.IsFalse(result[4].IsGroup);

            Assert.AreEqual(7, result[5].Id);
            Assert.AreEqual("THIRD", result[5].Label);
            Assert.IsTrue(result[5].IsGroup);

            Assert.AreEqual(5, result[6].Id);
            Assert.AreEqual("third c4", result[6].Label);
            Assert.IsFalse(result[6].IsGroup);
        }
Пример #2
0
        public void TestGetCategoryFromLabel_1Match_ReturnItemAndChildren()
        {
            ISessionFactory sessionFactory = NhibernateHelper.SessionFactory;
            CategoryRepository catRepo = new CategoryRepository(sessionFactory);

            using (ITransaction transaction = sessionFactory.GetCurrentSession().BeginTransaction())
            {
                Category parent = new Category() { Label = "parentlabel", LabelUrlPart = "parentlabelurl" };
                sessionFactory.GetCurrentSession().Save(parent);
                Category child1 = new Category() { Label = "childlabel1", LabelUrlPart = "childlabel1url" };
                Category child2 = new Category() { Label = "childlabel2", LabelUrlPart = "childlabel2url" };
                parent.AddCategory(child1);
                parent.AddCategory(child2);
                sessionFactory.GetCurrentSession().SaveOrUpdate(parent);
                sessionFactory.GetCurrentSession().Save(child1);
                sessionFactory.GetCurrentSession().Save(child2);

                Category actual = catRepo.GetCategoryFromLabel("parentlabel");
                Assert.AreEqual(2, actual.SubCategories.Count);
                Assert.AreEqual("childlabel1url", actual.SubCategories[0].LabelUrlPart);
                Assert.AreEqual("childlabel2url", actual.SubCategories[1].LabelUrlPart);
            }
        }
Пример #3
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();
        }
Пример #4
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);
        }
Пример #5
0
        public void InsertCategories()
        {
            if (_repository.CountAll<Category>() != 0)
                return;

            Category vehicles = new Category();
            vehicles.ImageName = "car";
            vehicles.Label = "Véhicules";
            vehicles.LabelUrlPart = "Vehicules";
            vehicles.AddCategory(new Category { ImageName = "car", Label = "Voitures", LabelUrlPart = "Voitures", Type = AdTypeEnum.CarAd });
            vehicles.AddCategory(new Category { ImageName = "car", Label = "Motos & Scooters", LabelUrlPart = "Motos-Scooters", Type = AdTypeEnum.MotoAd });
            vehicles.AddCategory(new Category { ImageName = "car", Label = "Voiturettes", LabelUrlPart = "Voiturettes", Type = AdTypeEnum.VehiculeAd });
            vehicles.AddCategory(new Category { ImageName = "car", Label = "4 x 4", LabelUrlPart = "4x4-Tout-Terrain", Type = AdTypeEnum.CarAd });
            vehicles.AddCategory(new Category { ImageName = "car", Label = "Autres Véhicules", LabelUrlPart = "AutresVehicules", Type = AdTypeEnum.OtherVehiculeAd });
            vehicles.AddCategory(new Category { ImageName = "car", Label = "Equipement auto", LabelUrlPart = "Equipement-Auto", Type = AdTypeEnum.Ad });
            vehicles.AddCategory(new Category { ImageName = "car", Label = "Equipement moto", LabelUrlPart = "Equipement-Moto", Type = AdTypeEnum.Ad });
            vehicles.AddCategory(new Category { ImageName = "car", Label = "Tuning", LabelUrlPart = "Tuning", Type = AdTypeEnum.Ad });
            _sessionFactory.GetCurrentSession().Save(vehicles);

            Category nautisme = new Category();
            nautisme.ImageName = "ship";
            nautisme.Label = "Nautisme";
            nautisme.LabelUrlPart = "Nautisme";
            nautisme.AddCategory(new Category { ImageName = "ship", Label = "Bateaux à moteur", LabelUrlPart = "BateauxMoteur", Type = AdTypeEnum.MotorBoatAd });
            nautisme.AddCategory(new Category { ImageName = "ship", Label = "Propulseurs", LabelUrlPart = "Propulseurs", Type = AdTypeEnum.MotorBoatEngineAd });
            nautisme.AddCategory(new Category { ImageName = "ship", Label = "Voiliers", LabelUrlPart = "Voiliers", Type = AdTypeEnum.SailingBoatAd });
            nautisme.AddCategory(new Category { ImageName = "ship", Label = "Accastillage / Sécurité", LabelUrlPart = "Accastillage-Securite", Type = AdTypeEnum.Ad });
            nautisme.AddCategory(new Category { ImageName = "ship", Label = "Remorques", LabelUrlPart = "Remorques", Type = AdTypeEnum.Ad });
            nautisme.AddCategory(new Category { ImageName = "ship", Label = "Sports / Loisirs", LabelUrlPart = "Sports-Loisirs", Type = AdTypeEnum.WaterSportAd });
            nautisme.AddCategory(new Category { ImageName = "ship", Label = "Matériel de pêche", LabelUrlPart = "Peche", Type = AdTypeEnum.Ad });
            nautisme.AddCategory(new Category { ImageName = "ship", Label = "Moto Marines", LabelUrlPart = "MotoMarines", Type = AdTypeEnum.Ad });
            nautisme.AddCategory(new Category { ImageName = "ship", Label = "Equipement / Electronique", LabelUrlPart = "Equipement-Electronique", Type = AdTypeEnum.Ad });
            nautisme.AddCategory(new Category { ImageName = "ship", Label = "Divers", LabelUrlPart = "Divers", Type = AdTypeEnum.Ad });

            _sessionFactory.GetCurrentSession().Save(nautisme);

            Category realEstate = new Category();
            realEstate.ImageName = "building";
            realEstate.Label = "Immobilier";
            realEstate.LabelUrlPart = "Immobilier";
            realEstate.AddCategory(new Category { ImageName = "building", Label = "Locations", LabelUrlPart = "Locations", Type = AdTypeEnum.RealEstateAd });
            realEstate.AddCategory(new Category { ImageName = "building", Label = "Ventes immobilières", LabelUrlPart = "Ventes", Type = AdTypeEnum.RealEstateAd });
            realEstate.AddCategory(new Category { ImageName = "building", Label = "Colocations", LabelUrlPart = "Colocations", Type = AdTypeEnum.RealEstateAd });
            realEstate.AddCategory(new Category { ImageName = "building", Label = "Locations de vacances", LabelUrlPart = "Vacances", Type = AdTypeEnum.RealEstateAd });
            realEstate.AddCategory(new Category { ImageName = "building", Label = "Gardiennage", LabelUrlPart = "Gardiennage", Type = AdTypeEnum.RealEstateAd });
            _sessionFactory.GetCurrentSession().Save(realEstate);

            Category multimedia = new Category();
            multimedia.ImageName = "tv";
            multimedia.Label = "Multimedia";
            multimedia.LabelUrlPart = "Multimedia";
            multimedia.AddCategory(new Category { ImageName = "tv", Label = "Informatique", LabelUrlPart = "Informatique", Type = AdTypeEnum.Ad });
            multimedia.AddCategory(new Category { ImageName = "tv", Label = "Consoles & Jeux vidéo", LabelUrlPart = "Jeux-Videos-Consoles", Type = AdTypeEnum.Ad });
            multimedia.AddCategory(new Category { ImageName = "tv", Label = "Image & Son", LabelUrlPart = "Image-Son", Type = AdTypeEnum.Ad });
            multimedia.AddCategory(new Category { ImageName = "tv", Label = "Téléphonie", LabelUrlPart = "Telephonie", Type = AdTypeEnum.Ad });
            multimedia.AddCategory(new Category { ImageName = "tv", Label = "DVD & Films", LabelUrlPart = "DVD-Films", Type = AdTypeEnum.Ad });
            multimedia.AddCategory(new Category { ImageName = "tv", Label = "CD & Musique", LabelUrlPart = "CD-Musique", Type = AdTypeEnum.Ad });
            _sessionFactory.GetCurrentSession().Save(multimedia);

            Category maison = new Category();
            maison.ImageName = "home";
            maison.Label = "Maison";
            maison.LabelUrlPart = "Maison";
            maison.AddCategory(new Category { ImageName = "home", Label = "Meubles", LabelUrlPart = "Meubles", Type = AdTypeEnum.Ad });
            maison.AddCategory(new Category { ImageName = "home", Label = "Electroménager", LabelUrlPart = "Electromenager", Type = AdTypeEnum.Ad });
            maison.AddCategory(new Category { ImageName = "home", Label = "Arts de la table", LabelUrlPart = "Arts-Table", Type = AdTypeEnum.Ad });
            maison.AddCategory(new Category { ImageName = "home", Label = "Décoration", LabelUrlPart = "Decoration", Type = AdTypeEnum.Ad });
            maison.AddCategory(new Category { ImageName = "home", Label = "Linge de maison", LabelUrlPart = "Linge-Maison", Type = AdTypeEnum.Ad });
            maison.AddCategory(new Category { ImageName = "home", Label = "Jardin & Bricolage", LabelUrlPart = "Bricolage", Type = AdTypeEnum.Ad });
            maison.AddCategory(new Category { ImageName = "home", Label = "Bébé", LabelUrlPart = "Bebe", Type = AdTypeEnum.Ad });
            _sessionFactory.GetCurrentSession().Save(maison);

            Category beaute = new Category();
            beaute.ImageName = "hanger";
            beaute.Label = "Beauté & Mode";
            beaute.LabelUrlPart = "Beaute-Mode";
            beaute.AddCategory(new Category { ImageName = "home", Label = "Vêtements", LabelUrlPart = "Vetements", Type = AdTypeEnum.Ad });
            beaute.AddCategory(new Category { ImageName = "home", Label = "Chaussures", LabelUrlPart = "Chassures", Type = AdTypeEnum.Ad });
            beaute.AddCategory(new Category { ImageName = "home", Label = "Accessoires & Bagagerie", LabelUrlPart = "Accessoires-Bagagerie", Type = AdTypeEnum.Ad });
            beaute.AddCategory(new Category { ImageName = "home", Label = "Montres & Bijoux", LabelUrlPart = "Montres-Bijoux", Type = AdTypeEnum.Ad });
            _sessionFactory.GetCurrentSession().Save(beaute);

            Category loisirs = new Category();
            loisirs.ImageName = "ball";
            loisirs.Label = "Loisirs";
            loisirs.LabelUrlPart = "Loisirs";
            loisirs.AddCategory(new Category { ImageName = "ball", Label = "Livres", LabelUrlPart = "Livres", Type = AdTypeEnum.Ad });
            loisirs.AddCategory(new Category { ImageName = "ball", Label = "Animaux", LabelUrlPart = "Animaux", Type = AdTypeEnum.Ad });
            loisirs.AddCategory(new Category { ImageName = "ball", Label = "Vélos", LabelUrlPart = "Velos", Type = AdTypeEnum.Ad });
            loisirs.AddCategory(new Category { ImageName = "ball", Label = "Sports & Hobbies", LabelUrlPart = "Sports-Hobbies", Type = AdTypeEnum.Ad });
            loisirs.AddCategory(new Category { ImageName = "ball", Label = "Instruments de musique", LabelUrlPart = "Instruments-Musique", Type = AdTypeEnum.Ad });
            loisirs.AddCategory(new Category { ImageName = "ball", Label = "Collections", LabelUrlPart = "Collections", Type = AdTypeEnum.Ad });
            loisirs.AddCategory(new Category { ImageName = "ball", Label = "Jeux & Jouets", LabelUrlPart = "Jeux-Jouets", Type = AdTypeEnum.Ad });
            _sessionFactory.GetCurrentSession().Save(loisirs);

            Category service = new Category();
            service.ImageName = "shake";
            service.Label = "Emplois & Services";
            service.LabelUrlPart = "Emplois-services";
            service.AddCategory(new Category { ImageName = "shake", Label = "Offres d'emplois", LabelUrlPart = "Offres-Emplois", Type = AdTypeEnum.Ad });
            service.AddCategory(new Category { ImageName = "shake", Label = "Offres de service", LabelUrlPart = "Offres-Service", Type = AdTypeEnum.Ad });
            _sessionFactory.GetCurrentSession().Save(service);

            //Category autre = new Category();
            //autre.Label = "Autres";
            //autre.LabelUrlPart = "Autres";
            //autre.AddCategory(new Category { Label = "Autres", LabelUrlPart = "Autres", Type = AdTypeEnum.Ad });
            //_sessionFactory.GetCurrentSession().Save(autre);
        }
Пример #6
0
        public void GetCategoryChildrenLabelFromParentLabel_ReturnChildrenLabels()
        {
            // Given
            Category g1 = new Category { Id = 1, Label = "first" };

            Category c1 = new Category { Id = 2, Label = "first c1" };
            g1.AddCategory(c1);
            Category c2 = new Category { Id = 4, Label = "first c2" };
            g1.AddCategory(c2);
            Category c3 = new Category { Id = 6, Label = "first c3" };
            g1.AddCategory(c3);
            Category c4 = new Category { Id = 5, Label = "first c4" };
            g1.AddCategory(c4);

            var repoMock = new Moq.Mock<IRepository>();
            repoMock.Setup(x => x.Get<Category>(1)).Returns(g1);

            CategoryServices service = new CategoryServices(repoMock.Object, null);

            // When
            IList<String> result = service.GetCategoryChildrenLabelFromParentId(1);

            // Then
            Assert.AreEqual("FIRST C1", result[0]);
            Assert.AreEqual("FIRST C2", result[1]);
            Assert.AreEqual("FIRST C3", result[2]);
            Assert.AreEqual("FIRST C4", result[3]);
        }