public void ActivateAd_ActivationTokenDoesNotWork_ReturnModelIsActivatedFalse() { // Given BaseAd ad = new Ad() { IsActivated = false, ActivationToken = "AAA" }; long adId = 78; var repoMock = new Moq.Mock<IRepository>(); repoMock.Setup(x => x.Get<BaseAd>(adId)).Returns(ad); AdActivationServices service = new AdActivationServices(repoMock.Object, null, null, null); // When AdActivationResultModel model = service.ActivateAd(adId, "BBB"); // Then Assert.IsFalse(model.IsActivated); Assert.AreEqual(78, model.AdId); Assert.AreEqual("Vous ne pouvez pas activer cette annonce.", model.InfoMessage); repoMock.Verify(x => x.Save(ad), Moq.Times.Never()); repoMock.Verify(x => x.Save(Moq.It.IsAny<SearchAdCache>()), Moq.Times.Never()); }
public void Constructor_WithoutProperties_FillInModel() { // Given BaseAd ad = new Ad(); ad.Body = "body"; ad.Title = "title"; ad.PhoneNumber = "78.85.75"; ad.Price = 2000; ad.Category = new Bea.Domain.Categories.Category { Id = 12 }; ad.City = new Bea.Domain.Location.City { Id = 11, Province = new Bea.Domain.Location.Province { Id = 13 } }; ad.CreatedBy = new User { Email = "*****@*****.**", Firstname = "Nico" }; // When AdCreateModel actual = new AdCreateModel(ad); // Then Assert.AreEqual("body", actual.Body); Assert.AreEqual("title", actual.Title); Assert.AreEqual("78.85.75", actual.Telephone); Assert.AreEqual(2000, actual.Price); Assert.AreEqual(12, actual.SelectedCategoryId); Assert.AreEqual(11, actual.SelectedCityId); Assert.AreEqual(13, actual.SelectedProvinceId); Assert.AreEqual("*****@*****.**", actual.Email); Assert.AreEqual("Nico", actual.Name); }
public void GetAdDetails_AdExists_GetAdFromRepoAndReturnAdModel() { // Given Ad ad = new Ad() { Id = 17 }; ad.CreationDate = new DateTime(2012, 02, 18); ad.CreatedBy = new User { Firstname = "Michel" }; ad.City = new City { Label = "Ville" }; var repoMock = new Moq.Mock<IRepository>(); repoMock.Setup(x => x.Get<BaseAd>(17)).Returns(ad as BaseAd); var adRepoMock = new Moq.Mock<IAdRepository>(); adRepoMock.Setup(r => r.GetAdType(17)).Returns(AdTypeEnum.Ad); adRepoMock.Setup(r => r.GetAdById<Ad>(17)).Returns(ad); var helperMock = new Moq.Mock<IHelperService>(); helperMock.Setup(s => s.GetCurrentDateTime()).Returns(new DateTime(2012, 02, 20)); AdDetailsServices service = new AdDetailsServices(adRepoMock.Object, helperMock.Object); // When AdDetailsModel actual = service.GetAdDetails(17); // Then Assert.AreEqual(17, actual.AdId); }
public void SearchAdCache_CopyCtorWithBaseAd_NoImages_CopyBaseAdProperties() { // Given BaseAd ad = new Ad() { Id = 1245, Title = "title", Body = "body", City = new City { Id = 45, Province = new Province { Id = 11 } }, Category = new Category { Id = 89 }, Price = 200457, CreationDate = new DateTime(2013, 01, 05) }; // When SearchAdCache actual = new SearchAdCache(ad); // Then Assert.AreEqual(ad.Id, actual.AdId); Assert.AreEqual(ad.Title, actual.Title); Assert.AreEqual(ad.Body, actual.Body); Assert.AreEqual(ad.City, actual.City); Assert.AreEqual(ad.City.Province, actual.Province); Assert.AreEqual(ad.Category, actual.Category); Assert.AreEqual(ad.Price, actual.Price); Assert.AreEqual(ad.CreationDate, actual.CreationDate); Assert.AreEqual(ad.Category.Type, actual.AdType); Assert.IsNull(actual.AdImageId); }
public void ActivateAd_ActivationTokenWorks_ReturnModelIsActivatedTrueAndActivatesAd() { // Given BaseAd ad = new Ad() { IsActivated = false, ActivationToken = "AAA", City = new City(), Category = new Category() }; long adId = 78; var repoMock = new Moq.Mock<IRepository>(); repoMock.Setup(x => x.Get<BaseAd>(adId)).Returns(ad); AdActivationServices service = new AdActivationServices(repoMock.Object, null, null, null); // When AdActivationResultModel model = service.ActivateAd(78, "AAA"); // Then Assert.IsTrue(model.IsActivated); Assert.AreEqual(78, model.AdId); Assert.AreEqual("Merci d'avoir activé votre annonce.", model.InfoMessage); repoMock.Verify(x => x.Save(ad), Moq.Times.Once()); repoMock.Verify(x => x.Save(Moq.It.IsAny<SearchAdCache>()), Moq.Times.Once()); }
public void GetAdPicturesFromModel_2Pictures_FetchThemFromRepoAndSetFirstAsMainImage() { // Given BaseAd ad = new Ad(); String images = "b9da8b1e-aa77-401b-84e0-a1290130b7b7;b9da8b1e-aa77-401b-84e0-a1290130b999;"; AdImage img1 = new AdImage() { Id = Guid.Parse("b9da8b1e-aa77-401b-84e0-a1290130b7b7") }; AdImage img2 = new AdImage() { Id = Guid.Parse("b9da8b1e-aa77-401b-84e0-a1290130b999") }; var repoMock = new Moq.Mock<IRepository>(); repoMock.Setup(x => x.Get<AdImage>(Guid.Parse("b9da8b1e-aa77-401b-84e0-a1290130b7b7"))).Returns(img1); repoMock.Setup(x => x.Get<AdImage>(Guid.Parse("b9da8b1e-aa77-401b-84e0-a1290130b999"))).Returns(img2); AdServices service = new AdServices(null, repoMock.Object, null); // When BaseAd result = service.GetAdPicturesFromModel(ad, images); // Then Assert.AreEqual(ad, result); Assert.AreEqual(2, ad.Images.Count); Assert.AreEqual("b9da8b1e-aa77-401b-84e0-a1290130b7b7", ad.Images[0].Id.ToString()); Assert.AreEqual(ad, ad.Images[0].BaseAd); Assert.IsTrue(ad.Images[0].IsPrimary); Assert.AreEqual("b9da8b1e-aa77-401b-84e0-a1290130b999", ad.Images[1].Id.ToString()); Assert.AreEqual(ad, ad.Images[1].BaseAd); Assert.IsFalse(ad.Images[1].IsPrimary); }
public void CanDeleteAd_AdExistsAndAlreadyDeleted_ReturnFalse() { ISessionFactory sessionFactory = NhibernateHelper.SessionFactory; Repository repo = new Repository(sessionFactory); AdRepository adRepo = new AdRepository(sessionFactory); using (ITransaction transaction = sessionFactory.GetCurrentSession().BeginTransaction()) { #region test data Province p1 = new Province { Label = "p1" }; User u = new User { Email = "*****@*****.**", Password = "******" }; repo.Save<User>(u); City c = new City { Label = "city", LabelUrlPart = "city" }; p1.AddCity(c); Category cat = new Category { Label = "Informatique", LabelUrlPart = "Informatique", Type = AdTypeEnum.Ad }; Ad a = new Ad { Title = "video game", Body = "the best!!", CreatedBy = u, CreationDate = new DateTime(2012, 01, 16, 23, 52, 18), Category = cat, IsDeleted = true }; c.AddAd(a); cat.AddAd(a); repo.Save<Province>(p1); repo.Save<City>(c); repo.Save<Category>(cat); long id = repo.Save<Ad, long>(a); repo.Flush(); #endregion Assert.IsFalse(adRepo.CanDeleteAd(id)); } }
public void CarAd_mapping_standalonetable() { ISessionFactory sessionFactory = NhibernateHelper.SessionFactory; IRepository repo = new Repository(sessionFactory); using (ITransaction transaction = sessionFactory.GetCurrentSession().BeginTransaction()) { Province p = new Province { Label = "Province Sud" }; City c = new City { Label = "Nouméa", Province = p, LabelUrlPart = "city" }; p.AddCity(c); repo.Save(p); repo.Save(c); User u = new User { Email = "email", Password = "******" }; repo.Save(u); Category cat = new Category { Label = "label", LabelUrlPart = "label" }; repo.Save(cat); CarAd carAd = new CarAd() { Title = "title", Body = "bidy", CreationDate = DateTime.Now, IsOffer = true, CreatedBy = u, City = c, Category = cat, Kilometers = 2000, Year = 2013 }; repo.Save(carAd); Ad ad = new Ad() { Title = "title", Body = "bidy", CreationDate = DateTime.Now, IsOffer = true, CreatedBy = u, City = c, Category = cat }; repo.Save(ad); repo.Flush(); } }
public void Constructor_WithoutImages_LeaveImageIdsAsNull() { // Given BaseAd ad = new Ad(); // When AdCreateModel actual = new AdCreateModel(ad); // Then Assert.AreEqual(String.Empty, actual.ImageIds); }
public void AdDetailsModel_ctor() { // Given City c = new City() { Label = "Nouméa" }; User u = new User() { Firstname = "Nicolas" }; Category cat = new Category() { Label = "Auto", LabelUrlPart = "Auto", ParentCategory = new Category { Label = "Véhicules", LabelUrlPart = "Vehicules" } }; Ad ad = new Ad() { Id = 17, Title = "title", Price = 1270, City = c, CreatedBy = u, CreationDate = new DateTime(2012, 05, 12, 17, 26, 08), Body = "body", }; cat.AddAd(ad); ad.Images.Add(new AdImage() { Id = Guid.Parse("e9da8b1e-aa77-401b-84e0-a1290130b7b7") }); ad.Images.Add(new AdImage() { Id = Guid.Parse("e9da8b1e-aa77-401b-84e0-a1290130b7b9") }); // When AdDetailsModel model = new AdDetailsModel(ad); // Then Assert.AreEqual("title", model.Title); Assert.AreEqual("Nouméa", model.Location); Assert.AreEqual("Nicolas", model.UserFirstName); Assert.AreEqual("samedi 12 mai 2012 17:26", model.CreationDateString); Assert.AreEqual("body", model.Body); Assert.AreEqual("1 270 Francs", model.Price); Assert.AreEqual(17, model.AdId); Assert.AreEqual(2, model.ImagesIds.Count); Assert.AreEqual("e9da8b1e-aa77-401b-84e0-a1290130b7b7", model.ImagesIds[0]); Assert.AreEqual("e9da8b1e-aa77-401b-84e0-a1290130b7b9", model.ImagesIds[1]); Assert.AreEqual("Auto", model.Category); Assert.AreEqual("Auto", model.CategoryUrlPart); Assert.AreEqual("Véhicules", model.CategoryGroup); Assert.AreEqual("Vehicules", model.CategoryGroupUrlPart); }
public void Constructor_With2Images_ConcatImageIds() { // Given BaseAd ad = new Ad(); ad.AddImage(new AdImage() { Id = Guid.Parse("e9da8b1e-aa77-401b-84e0-a1290130b7b7") }); ad.AddImage(new AdImage() { Id = Guid.Parse("e9da8b1e-aa77-401b-84e0-a1290130b7b9") }); // When AdCreateModel actual = new AdCreateModel(ad); // Then Assert.AreEqual("e9da8b1e-aa77-401b-84e0-a1290130b7b7;e9da8b1e-aa77-401b-84e0-a1290130b7b9;", actual.ImageIds); }
public void SearchAdCache_CopyCtorWithBaseAd_WithImages_CopyBaseAdProperties() { // Given BaseAd ad = new Ad() { Id = 1245, Title = "title", Body = "body", City = new City { Id = 45, Province = new Province { Id = 11 } }, Category = new Category { Id = 89 }, Images = new List<AdImage>() { new AdImage { Id = Guid.Parse("b9da8b1e-aa77-401b-84e0-a1290130b7b7"), IsPrimary = false }, new AdImage { Id = Guid.Parse("e9da8b1e-aa77-401b-84e0-a1290130b7b7"), IsPrimary = true }, } }; // When SearchAdCache actual = new SearchAdCache(ad); // Then Assert.AreEqual("e9da8b1e-aa77-401b-84e0-a1290130b7b7", actual.AdImageId); }
public void GetAdDetails_AdIsNew_GetAdFromRepoAndPopulateIsNewTrue() { // Given Ad ad = new Ad(); ad.CreationDate = new DateTime(2012, 02, 18); ad.CreatedBy = new User { Firstname = "Michel" }; ad.City = new City { Label = "Ville" }; var adRepoMock = new Moq.Mock<IAdRepository>(); adRepoMock.Setup(r => r.GetAdType(17)).Returns(AdTypeEnum.Ad); adRepoMock.Setup(r => r.GetAdById<Ad>(17)).Returns(ad); var helperMock = new Moq.Mock<IHelperService>(); helperMock.Setup(s => s.GetCurrentDateTime()).Returns(new DateTime(2012, 02, 20)); AdDetailsServices service = new AdDetailsServices(adRepoMock.Object, helperMock.Object); // When AdDetailsModel actual = service.GetAdDetails(17); // Then Assert.IsTrue(actual.IsNew); }
public void PerformDeleteAd_AdExists_PasswordDoesNotMatch() { // Given DeleteAdModel model = new DeleteAdModel { AdId = 56, Password = "******", NbTry = 1, SelectedDeletionReasonId = 7 }; User creator = new User() { Password = "******" }; BaseAd ad = new Ad() { CreatedBy = creator }; var adRepoMock = new Moq.Mock<IAdRepository>(); adRepoMock.Setup(r => r.GetAdById<BaseAd>(model.AdId)).Returns(ad); AdDeletionServices service = new AdDeletionServices(adRepoMock.Object, null, null); // When DeleteAdModel result = service.DeleteAd(model); // Then Assert.AreEqual(model.AdId, result.AdId); Assert.IsNull(result.Password); Assert.AreEqual(7, result.SelectedDeletionReasonId); Assert.AreEqual(2, result.NbTry); Assert.IsNull(result.InfoMessage); Assert.IsTrue(result.CanDeleteAd); Assert.IsFalse(result.IsDeleted); }
public void GetAdsByEmail_ReturnListOfAds_WithUserAndCategoryFetched() { ISessionFactory sessionFactory = NhibernateHelper.SessionFactory; AdRepository adRepo = new AdRepository(sessionFactory); Repository repo = new Repository(sessionFactory); using (ITransaction transaction = sessionFactory.GetCurrentSession().BeginTransaction()) { #region test data Province p1 = new Province { Label = "p1" }; User u = new User { Email = "*****@*****.**", Password = "******" }; repo.Save<User>(u); User u2 = new User { Email = "*****@*****.**", Password = "******" }; repo.Save<User>(u2); City c = new City { Label = "city", LabelUrlPart = "city", }; p1.AddCity(c); Category cat = new Category { Label = "Informatique", LabelUrlPart = "Informatique", Type = AdTypeEnum.Ad }; Category cat2 = new Category { Label = "Voiture", LabelUrlPart = "Voiture", Type = AdTypeEnum.Ad }; Ad a = new Ad { Title = "video game", Body = "the best!!", CreatedBy = u, CreationDate = new DateTime(2012, 01, 16, 23, 52, 18), Category = cat, IsDeleted = false, IsActivated = true }; Ad a2 = new Ad { Title = "Ferrari F430", Body = "Valab'", CreatedBy = u, CreationDate = new DateTime(2012, 01, 16, 23, 52, 18), Category = cat2, IsDeleted = false, IsActivated = true }; Ad a3 = new Ad { Title = "Ferrari F430", Body = "Valab'", CreatedBy = u2, CreationDate = new DateTime(2012, 01, 16, 23, 52, 18), Category = cat2, IsDeleted = false, IsActivated = true }; c.AddAd(a); c.AddAd(a2); c.AddAd(a3); cat.AddAd(a); cat2.AddAd(a2); cat2.AddAd(a3); repo.Save<Province>(p1); repo.Save<City>(c); repo.Save<Category>(cat); repo.Save<Category>(cat2); repo.Save<Ad, long>(a); repo.Save<Ad, long>(a2); repo.Save<Ad, long>(a3); repo.Flush(); #endregion List<BaseAd> adsUser1 = adRepo.GetAdsByEmail(u.Email).ToList(); List<BaseAd> adsUser2 = adRepo.GetAdsByEmail(u2.Email).ToList(); Assert.AreEqual(2, adsUser1.Count); Assert.AreEqual(u.Email, adsUser1[0].CreatedBy.Email); Assert.AreEqual(1, adsUser2.Count); Assert.AreEqual(u2.Email, adsUser2[0].CreatedBy.Email); } }
public void SearchAdsByTitle_SearchStringIsNull_ReturnEverythingOrderedByCreationDate() { ISessionFactory sessionFactory = NhibernateHelper.SessionFactory; Repository repo = new Repository(sessionFactory); AdRepository adRepo = new AdRepository(sessionFactory); using (ITransaction transaction = sessionFactory.GetCurrentSession().BeginTransaction()) { // Given #region test data User u = new User { Email = "*****@*****.**", Password = "******" }; repo.Save<User>(u); City c = new City { Label = "CherzmOi", LabelUrlPart = "city" }; Category cat = new Category { Label = "Moto", LabelUrlPart = "Moto" }; Ad a = new Ad { Title = "titre 1", Body = "content", CreatedBy = u, CreationDate = new DateTime(2012, 01, 16, 23, 52, 12) }; c.AddAd(a); cat.AddAd(a); repo.Save<City>(c); repo.Save<Category>(cat); repo.Save<Ad>(a); Ad a2 = new Ad { Title = "title 2", Body = "content", CreatedBy = u, CreationDate = new DateTime(2012, 01, 16, 23, 52, 18) }; c.AddAd(a2); cat.AddAd(a2); repo.Save<Ad>(a2); repo.Flush(); #endregion // When IList<Ad> result = adRepo.SearchAdsByTitle(null); // Then Assert.AreEqual(2, result.Count); Assert.AreEqual(a2, result[0]); Assert.AreEqual(a, result[1]); } }
public void SendActivationEmail_FillInTemplateAndCallEmailService() { // Given String templatedMail = "plouf"; String toAddress = "@@"; BaseAd ad = new Ad() { Title = "ss", CreatedBy = new Bea.Domain.User() { Email = toAddress } }; var templatingMock = new Moq.Mock<ITemplatingService>(); templatingMock.Setup(x => x.GetTemplatedDocument("ActivationEmail.vm", Moq.It.IsAny<IDictionary<String, String>>(), null)).Returns(templatedMail); var appSettingsMock = new Moq.Mock<IApplicationSettingsProvider>(); appSettingsMock.Setup(x => x.WebsiteAddress).Returns("beaproject.com"); appSettingsMock.Setup(x => x.WebsiteName).Returns("BEA"); var emailMock = new Moq.Mock<IEmailServices>(); emailMock.Setup(x => x.SendEmail("BEA Activez votre annonce \"ss\"", "plouf", "@@", "*****@*****.**")).Verifiable(); AdActivationServices service = new AdActivationServices(null, templatingMock.Object, emailMock.Object, appSettingsMock.Object); // When service.SendActivationEmail(ad); // Then emailMock.Verify(x => x.SendEmail("BEA Activez votre annonce \"ss\"", "plouf", "@@", "*****@*****.**"), Times.Once()); }
public void ActivateAd_AdIsAlreadyActivated_ReturnModelIsActivatedTrue() { // Given BaseAd ad = new Ad() { IsActivated = true }; long adId = 78; var repoMock = new Moq.Mock<IRepository>(); repoMock.Setup(x => x.Get<BaseAd>(adId)).Returns(ad); AdActivationServices service = new AdActivationServices(repoMock.Object, null, null, null); // When AdActivationResultModel model = service.ActivateAd(78, null); // Then Assert.IsTrue(model.IsActivated); Assert.AreEqual(78, model.AdId); Assert.AreEqual("Cette annonce a déjà été activée.", model.InfoMessage); repoMock.Verify(x => x.Save(ad), Moq.Times.Never()); repoMock.Verify(x => x.Save(Moq.It.IsAny<SearchAdCache>()), Moq.Times.Never()); }
public void AdvancedSearchAds_Ad_MinMaxPrice_ReturnMatchingAds() { ISessionFactory sessionFactory = NhibernateHelper.SessionFactory; Repository repo = new Repository(sessionFactory); SearchRepository adRepo = new SearchRepository(sessionFactory); using (ITransaction transaction = sessionFactory.GetCurrentSession().BeginTransaction()) { // Given #region test data Province p1 = new Province { Label = "p1" }; User u = new User { Email = "*****@*****.**", Password = "******" }; repo.Save<User>(u); City c = new City { Label = "city", LabelUrlPart = "city" }; p1.AddCity(c); Category cat = new Category { Label = "Location", LabelUrlPart = "Location" }; SearchAdCache a = new SearchAdCache { AdId = 1, Title = "chaussure", Body = "boite a chaussure", City = c, CreationDate = new DateTime(2012, 01, 16, 23, 52, 18), Category = cat }; Ad loc = new Ad { Id = 1, Title = "chaussure", Body = "boite a chaussure", City = c, CreationDate = new DateTime(2012, 01, 16, 23, 52, 18), Category = cat, CreatedBy = u, Price = 1000 }; repo.Save(p1); repo.Save(c); repo.Save(cat); repo.Save(u); repo.Save(loc); repo.Save(a); SearchAdCache a2 = new SearchAdCache { AdId = 2, Title = "chaussure", Body = "boite a chaussure", City = c, CreationDate = new DateTime(2012, 01, 16, 23, 52, 18), Category = cat }; Ad loc2 = new Ad { Id = 2, Title = "chaussure", Body = "boite a chaussure", City = c, CreationDate = new DateTime(2012, 01, 16, 23, 52, 18), Category = cat, CreatedBy = u, Price = 2000 }; repo.Save(loc2); repo.Save(a2); repo.Flush(); #endregion AdSearchParameters param = new AdSearchParameters { MinPrice = 0, MaxPrice = 1000 }; // When IList<SearchAdCache> result = adRepo.AdvancedSearchAds<Ad>(param); // Then Assert.AreEqual(1, result.Count); Assert.AreEqual(a, result[0]); } }
public void InsertInMemoryData() { //------------------------------------------- // LOCATION REFERENCE TABLES //------------------------------------------- using (ITransaction transaction = _sessionFactory.GetCurrentSession().BeginTransaction()) { //------------------------------------------- // USER TABLE //------------------------------------------- //Create User 1 User user = new User(); user.Email = "*****@*****.**"; user.Password = "******"; user.Firstname = "Bruno"; user.Lastname = "Secret"; _sessionFactory.GetCurrentSession().Save(user); //Create User 2 User user2 = new User(); user2.Email = "*****@*****.**"; user2.Password = "******"; user2.Firstname = "Nicolas"; user2.Lastname = "Secret"; _sessionFactory.GetCurrentSession().Save(user2); //------------------------------------------- // IMAGES //------------------------------------------- AdImage img1 = new AdImage(); img1.Id = Guid.Parse("acd04523-f2fc-47b5-a7af-50b33c49694f"); img1.IsPrimary = true; img1.UploadedDate = new DateTime(); log.Info(_sessionFactory.GetCurrentSession().Save(img1)); AdImage img2 = new AdImage(); img2.Id = Guid.Parse("262dcc07-8c90-4af8-b99c-12e48afac89f"); img2.IsPrimary = true; img2.UploadedDate = new DateTime(); log.Info(_sessionFactory.GetCurrentSession().Save(img2)); //------------------------------------------- // AD TABLE //------------------------------------------- var normalCategories = _sessionFactory.GetCurrentSession().Query<Category>() .Where(x => x.Type == AdTypeEnum.Ad) .ToList(); int nbCategories = normalCategories.Count; int nbCities = _repository.CountAll<City>(); for (int i = 1; i < 31; i++) { BaseAd ad = null; ad = new Ad(); normalCategories[Faker.RandomNumber.Next(0, nbCategories - 1)].AddAd(ad); Faker.Lorem.Words(3).ForEach(s => ad.Title += " " + s); ad.Body = Faker.Lorem.Paragraph(); ad.IsOffer = true; ad.CreationDate = DateTime.Now .AddDays(Faker.RandomNumber.Next(-7, 0)) .AddHours(Faker.RandomNumber.Next(1, 23)) .AddMinutes(Faker.RandomNumber.Next(1, 59)) .AddSeconds(Faker.RandomNumber.Next(1, 59)); ad.Price = Faker.RandomNumber.Next(1, 300000); ad.PhoneNumber = String.Format("{0}.{1}.{2}", Faker.RandomNumber.Next(20, 99), Faker.RandomNumber.Next(20, 99), Faker.RandomNumber.Next(20, 99)); if (i == 1) ad.AddImage(img1); if (i == 2) ad.AddImage(img2); ad.CreatedBy = user; ad.IsActivated = false; ad.ActivationToken = "activateme"; _repository.Get<City>(Faker.RandomNumber.Next(1, nbCities)).AddAd(ad); _sessionFactory.GetCurrentSession().Save(ad); } _sessionFactory.GetCurrentSession().Update(img1); _sessionFactory.GetCurrentSession().Update(img2); //------------------------------------------- // REFERENCE TABLES //------------------------------------------- transaction.Commit(); } }
public void GetAdPicturesFromModel_NoPictures_ReturnAdWithoutPictures() { // Given BaseAd ad = new Ad(); String images = null; AdServices service = new AdServices(null, null, null); // When BaseAd result = service.GetAdPicturesFromModel(ad, images); // Then Assert.AreEqual(ad, result); Assert.AreEqual(0, ad.Images.Count); }
public void GetAdById_GetAd_ReturnAdObject() { ISessionFactory sessionFactory = NhibernateHelper.SessionFactory; Repository repo = new Repository(sessionFactory); AdRepository adRepo = new AdRepository(sessionFactory); using (ITransaction transaction = sessionFactory.GetCurrentSession().BeginTransaction()) { #region test data Province p1 = new Province { Label = "p1" }; User u = new User { Email = "*****@*****.**", Password = "******" }; repo.Save<User>(u); City c = new City { Label = "city", LabelUrlPart = "city" }; p1.AddCity(c); Category cat = new Category { Label = "Moto", LabelUrlPart = "Moto" }; Ad a = new Ad { Title = "ship", Body = "computer", CreatedBy = u, CreationDate = new DateTime(2012, 01, 16, 23, 52, 18), Category = cat }; c.AddAd(a); cat.AddAd(a); repo.Save<Province>(p1); repo.Save<City>(c); repo.Save<Category>(cat); long id = repo.Save<Ad, long>(a); repo.Flush(); #endregion Assert.AreEqual(a, adRepo.GetAdById<Ad>(id)); } }
public void PerformDeleteAd_AdExists_PasswordMatches_MarkAdAsDeletedAndRemoveFromSearchAdCache() { // Given DeleteAdModel model = new DeleteAdModel { AdId = 56, Password = "******", NbTry = 1, SelectedDeletionReasonId = 7 }; DeletionReason dr = new DeletionReason() { Id = 7 }; SearchAdCache adc = new SearchAdCache() { AdId = 56 }; User creator = new User() { Password = "******" }; BaseAd ad = new Ad() { Id = 56, CreatedBy = creator }; var adRepoMock = new Moq.Mock<IAdRepository>(); adRepoMock.Setup(r => r.GetAdById<BaseAd>(model.AdId)).Returns(ad); var repoMock = new Moq.Mock<IRepository>(); repoMock.Setup(x => x.Get<DeletionReason>(7)).Returns(dr); repoMock.Setup(x => x.Get<SearchAdCache>(model.AdId)).Returns(adc); repoMock.Setup(x => x.Save<BaseAd>(ad)); repoMock.Setup(x => x.Delete<SearchAdCache>(adc)); var helperMock = new Moq.Mock<IHelperService>(); helperMock.Setup(x => x.GetCurrentDateTime()).Returns(new DateTime(2013, 01, 26)); AdDeletionServices service = new AdDeletionServices(adRepoMock.Object, repoMock.Object, helperMock.Object); // When DeleteAdModel result = service.DeleteAd(model); // Then Assert.AreEqual(model.AdId, result.AdId); Assert.IsNull(result.Password); Assert.IsNull(result.SelectedDeletionReasonId); Assert.AreEqual(0, result.NbTry); Assert.AreEqual("Votre annonce a correctement été supprimée. Elle n'est plus disponible à la recherche.", result.InfoMessage); Assert.IsFalse(result.CanDeleteAd); Assert.IsTrue(result.IsDeleted); Assert.AreEqual(new DateTime(2013, 01, 26), ad.DeletionDate); Assert.IsTrue(ad.IsDeleted); Assert.AreEqual(dr, ad.DeletedReason); repoMock.Verify(x => x.Save<BaseAd>(ad), Times.Once()); repoMock.Verify(x => x.Delete<SearchAdCache>(adc), Times.Once()); }
public void PerformDeleteAd_AdsAlreadyDeleted_ReturnMessage() { // Given DeleteAdModel model = new DeleteAdModel { AdId = 56 }; BaseAd ad = new Ad() { IsDeleted = true }; var adRepoMock = new Moq.Mock<IAdRepository>(); adRepoMock.Setup(r => r.GetAdById<BaseAd>(model.AdId)).Returns(ad); AdDeletionServices service = new AdDeletionServices(adRepoMock.Object, null, null); // When DeleteAdModel result = service.DeleteAd(model); // Then Assert.AreEqual(model.AdId, result.AdId); Assert.IsNull(result.Password); Assert.IsNull(result.SelectedDeletionReasonId); Assert.AreEqual(0, result.NbTry); Assert.AreEqual("Cette annonce n'existe pas ou plus.", result.InfoMessage); Assert.IsFalse(result.CanDeleteAd); Assert.IsFalse(result.IsDeleted); }
public void CountAdsByCity_2Citiesand3Ad_Return2elements() { ISessionFactory sessionFactory = NhibernateHelper.SessionFactory; Repository repo = new Repository(sessionFactory); AdRepository adRepo = new AdRepository(sessionFactory); using (ITransaction transaction = sessionFactory.GetCurrentSession().BeginTransaction()) { // Given #region test data User u = new User { Email = "*****@*****.**", Password = "******" }; repo.Save<User>(u); City c = new City { Label = "CherzmOi", LabelUrlPart = "city" }; Category cat = new Category { Label = "Bateau", LabelUrlPart = "Bateau" }; Ad a = new Ad { Title = "titre", Body = "content", CreatedBy = u, City = c, Category = cat }; c.AddAd(a); cat.AddAd(a); repo.Save<City>(c); repo.Save<Category>(cat); repo.Save<Ad>(a); Ad a2 = new Ad { Title = "titre", Body = "content", CreatedBy = u, City = c, Category = cat }; c.AddAd(a2); repo.Save<Ad>(a2); City c2 = new City { Label = "CherzmOi 2", LabelUrlPart = "city2", }; Ad a3 = new Ad { Title = "titre", Body = "content", CreatedBy = u, City = c2, Category = cat }; c2.AddAd(a3); repo.Save<City>(c2); repo.Save<Ad>(a3); repo.Flush(); #endregion // When IDictionary<City, int> result = adRepo.CountAdsByCity(); // Then Assert.AreEqual(2, result.Count); Assert.AreEqual(2, result[c]); Assert.AreEqual(1, result[c2]); } }