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); }
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); } }
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 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); }
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); }
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]); }