public async void TestSaveUpdatedCategory() { var optionsBuilder = new DbContextOptionsBuilder <HomeMyDayDbContext>(); optionsBuilder.UseInMemoryDatabase(Guid.NewGuid().ToString()); HomeMyDayDbContext context = new HomeMyDayDbContext(optionsBuilder.Options); FaqCategory catToUpdate = new FaqCategory() { Id = 1, CategoryName = "Test", }; await context.FaqCategory.AddAsync(catToUpdate); await context.SaveChangesAsync(); IFaqRepository repository = new EFFaqRepository(context); // Change some values catToUpdate.CategoryName = "New"; await repository.SaveCategory(catToUpdate); // Check if the item was updated FaqCategory updatedCat = await context.FaqCategory.FindAsync((long)1); Assert.NotNull(updatedCat); Assert.Equal("New", updatedCat.CategoryName); }
public async void TestSaveNotExistingCategoryWithNotExistingId() { var optionsBuilder = new DbContextOptionsBuilder <HomeMyDayDbContext>(); optionsBuilder.UseInMemoryDatabase(Guid.NewGuid().ToString()); HomeMyDayDbContext context = new HomeMyDayDbContext(optionsBuilder.Options); FaqCategory ExistingCat = new FaqCategory() { Id = 1, CategoryName = "Test", }; await context.FaqCategory.AddAsync(ExistingCat); await context.SaveChangesAsync(); IFaqRepository repository = new EFFaqRepository(context); // Change some values FaqCategory catToUpdate = new FaqCategory() { Id = 2, CategoryName = "New", }; await Assert.ThrowsAsync <DbUpdateConcurrencyException>(() => repository.SaveCategory(catToUpdate)); }
public void TestEditSurprisePage() { var optionsBuilder = new DbContextOptionsBuilder <HomeMyDayDbContext>(); optionsBuilder.UseInMemoryDatabase(Guid.NewGuid().ToString()); HomeMyDayDbContext context = new HomeMyDayDbContext(optionsBuilder.Options); context.Page.Add(new Page() { Id = 1, Page_Name = "TheSurprise", Title = "LastSurprise", Content = "Hallo" }); context.SaveChanges(); Page page = new Page() { Title = "NewSurprise", Content = "NewContent" }; IPageRepository repository = new EFPageRepository(context); repository.EditPage(1, page); Assert.Equal("NewSurprise", repository.GetPage(1).Title); Assert.Equal("NewContent", repository.GetPage(1).Content); }
public async void TestSaveNewCategory() { var optionsBuilder = new DbContextOptionsBuilder <HomeMyDayDbContext>(); optionsBuilder.UseInMemoryDatabase(Guid.NewGuid().ToString()); HomeMyDayDbContext context = new HomeMyDayDbContext(optionsBuilder.Options); context.FaqCategory.AddRange( new FaqCategory() { CategoryName = "Test" } ); await context.SaveChangesAsync(); IFaqRepository repository = new EFFaqRepository(context); FaqCategory categoryToCreate = new FaqCategory() { CategoryName = "Test" }; await repository.SaveCategory(categoryToCreate); // Check if the item was created FaqCategory foundCat = await context.FaqCategory.FirstOrDefaultAsync(x => x.CategoryName == "Test"); Assert.NotNull(foundCat); Assert.Equal("Test", foundCat.CategoryName); }
public void TestGetIdExistingAccommodation() { var optionsBuilder = new DbContextOptionsBuilder <HomeMyDayDbContext>(); optionsBuilder.UseInMemoryDatabase(Guid.NewGuid().ToString()); HomeMyDayDbContext context = new HomeMyDayDbContext(optionsBuilder.Options); context.Vacancies.Add(new Vacancy() { Id = 1, JobTitle = "Test", AboutFunction = "Software Engineer", AboutVacancy = "Fulltime", City = "Breda", Company = "SPIE Nederland B.V.", JobRequirements = "HBO Bachelor", WeOffer = "Luxe secundaire voorwaarden" }); context.SaveChanges(); IVacancyRepository repository = new EFVacancyRepository(context); var vacancie = repository.GetVacancy(1); Assert.NotNull(vacancie); }
public void TestGetSurprise() { var optionsBuilder = new DbContextOptionsBuilder <HomeMyDayDbContext>(); optionsBuilder.UseInMemoryDatabase(Guid.NewGuid().ToString()); HomeMyDayDbContext context = new HomeMyDayDbContext(optionsBuilder.Options); context.Page.AddRange( new Page() { Page_Name = "TheSurprise", Title = "Surprise", Content = "Hallo" }, new Page() { Page_Name = "TheSurprise", Title = "LastSurprise", Content = "Hallo" } ); context.SaveChanges(); IPageRepository repository = new EFPageRepository(context); Assert.Equal("Surprise", repository.GetPage(1).Title); Assert.Equal("LastSurprise", repository.GetPage(2).Title); }
public void TestGetExistingId() { var optionsBuilder = new DbContextOptionsBuilder <HomeMyDayDbContext>(); optionsBuilder.UseInMemoryDatabase(Guid.NewGuid().ToString()); HomeMyDayDbContext context = new HomeMyDayDbContext(optionsBuilder.Options); context.Reviews.Add( new Review() { Id = 1, Accommodation = new Accommodation() { Id = 1, Name = "Test" }, Name = "TestReview", Approved = true }); context.SaveChanges(); IReviewRepository repository = new EFReviewRepository(context, null); var reviews = repository.GetAccomodationReviews(1); Assert.NotNull(reviews.FirstOrDefault()); Assert.Equal("Test", reviews.FirstOrDefault().Accommodation.Name); Assert.Equal("TestReview", reviews.FirstOrDefault().Name); Assert.True(reviews.Count() == 1); }
public void TestVacanciesFilledRepository() { var optionsBuilder = new DbContextOptionsBuilder <HomeMyDayDbContext>(); optionsBuilder.UseInMemoryDatabase(Guid.NewGuid().ToString()); HomeMyDayDbContext context = new HomeMyDayDbContext(optionsBuilder.Options); context.Vacancies.AddRange( new Vacancy() { JobTitle = "Dit is een omschrijving", AboutFunction = "Test0" }, new Vacancy() { JobTitle = "Dit is een omschrijving", AboutFunction = "Test1" }, new Vacancy() { JobTitle = "Dit is een omschrijving", AboutFunction = "Test2" }, new Vacancy() { JobTitle = "Dit is een omschrijving", AboutFunction = "Test3" } ); context.SaveChanges(); IVacancyRepository repository = new EFVacancyRepository(context); Assert.True(repository.Vacancies.Count() == 4); }
public void TestAddNotExistingReview() { var optionsBuilder = new DbContextOptionsBuilder <HomeMyDayDbContext>(); optionsBuilder.UseInMemoryDatabase(Guid.NewGuid().ToString()); HomeMyDayDbContext context = new HomeMyDayDbContext(optionsBuilder.Options); IAccommodationRepository accommodationRepository = new EFAccommodationRepository(context); context.Accommodations.Add(new Accommodation() { Id = 1, Name = "TestAccommodation", Beds = 6, Country = "Amsterdam", Rooms = 3 }); context.SaveChanges(); IReviewRepository repository = new EFReviewRepository(context, accommodationRepository); Assert.True(repository.AddReview(1, "Review Holiday 001", "TestReview", "De vakantie was goed!")); Assert.True(repository.GetAccomodationReviews(1).Count() == 1); }
public void TestGetIdIsZeroReview() { var optionsBuilder = new DbContextOptionsBuilder <HomeMyDayDbContext>(); optionsBuilder.UseInMemoryDatabase(Guid.NewGuid().ToString()); HomeMyDayDbContext context = new HomeMyDayDbContext(optionsBuilder.Options); var accommodationRepository = new Mock <IAccommodationRepository>(); accommodationRepository.SetupGet(x => x.Accommodations).Returns(new List <Accommodation>() { new Accommodation() { Id = 1, Name = "Test", Beds = 2, Country = "Breda", MaxPersons = 6 }, new Accommodation() { Id = 2, Name = "Test2", Beds = 4, Country = "Tilburg", MaxPersons = 4 } }); IReviewRepository repository = new EFReviewRepository(context, accommodationRepository.Object); Assert.Throws <ArgumentOutOfRangeException>(() => repository.GetAccomodationReviews(0)); }
public void TestGetArgumentExceptionReview() { var optionsBuilder = new DbContextOptionsBuilder <HomeMyDayDbContext>(); optionsBuilder.UseInMemoryDatabase(Guid.NewGuid().ToString()); HomeMyDayDbContext context = new HomeMyDayDbContext(optionsBuilder.Options); var accommodation = new Accommodation() { Id = 1, Name = "TestAcco", Location = "Breda", Beds = 6 }; context.Reviews.Add(new Review() { Id = 1, Accommodation = accommodation, Name = "TestReview", Approved = true }); context.Reviews.Add(new Review() { Id = 2, Name = "TestReview2", Accommodation = accommodation, Approved = false }); context.SaveChanges(); IReviewRepository repository = new EFReviewRepository(context, null); Assert.Throws <ArgumentOutOfRangeException>(() => repository.GetAccomodationReviews(0)); }
public void TestCountries() { var optionsBuilder = new DbContextOptionsBuilder <HomeMyDayDbContext>(); optionsBuilder.UseInMemoryDatabase(Guid.NewGuid().ToString()); HomeMyDayDbContext context = new HomeMyDayDbContext(optionsBuilder.Options); context.Countries.Add(new Country() { Id = 1, CountryCode = "AZE", Name = "Azerbaijan" }); context.Countries.Add(new Country() { Id = 2, CountryCode = "USA", Name = "United States" }); context.SaveChanges(); ICountryRepository repository = new EFCountryRepository(context); Assert.Equal(2, repository.Countries.Count()); }
public void TestFilledSearchAccommodations() { var optionsBuilder = new DbContextOptionsBuilder <HomeMyDayDbContext>(); optionsBuilder.UseInMemoryDatabase(Guid.NewGuid().ToString()); HomeMyDayDbContext context = new HomeMyDayDbContext(optionsBuilder.Options); context.Accommodations.Add(new Accommodation() { Beds = 4, Continent = "Europe", Country = "Netherlands", Description = "Van der Valk hotels", Location = "Gilze", MaxPersons = 4, Name = "Van der valk Gilze", Rooms = 5 }); context.SaveChanges(); IAccommodationRepository repository = new EFAccommodationRepository(context); IReviewRepository reviewRepo = new EFReviewRepository(context, repository); IAccommodationManager manager = new AccommodationManager(repository, reviewRepo); SearchBarViewComponent target = new SearchBarViewComponent(manager); AccommodationSearchViewModel results = (AccommodationSearchViewModel)(target.Invoke() as ViewViewComponentResult).ViewData.Model; Assert.NotNull(results); Assert.NotEmpty(results.Accommodations); }
public void TestErrorViewOnSubscription() { var optionsBuilder = new DbContextOptionsBuilder <HomeMyDayDbContext>(); optionsBuilder.UseInMemoryDatabase(Guid.NewGuid().ToString()); var context = new HomeMyDayDbContext(optionsBuilder.Options); context.Newspapers.Add(new Newspaper() { Email = "*****@*****.**" }); context.SaveChanges(); var repository = new EFNewspaperRepository(context); INewspaperManager manager = new NewspaperManager(repository); var target = new NewspaperController(manager); var newspaperViewModel = new NewspaperViewModel() { Email = "*****@*****.**" }; var result = target.Index(newspaperViewModel); Assert.NotNull(result); Assert.NotNull(newspaperViewModel); Assert.Null(result.ViewName); Assert.NotNull(result.ViewData); Assert.True(result.ViewData.ModelState.ErrorCount > 0); }
public void TestFilledFaqList() { var optionsBuilder = new DbContextOptionsBuilder <HomeMyDayDbContext>(); optionsBuilder.UseInMemoryDatabase(Guid.NewGuid().ToString()); HomeMyDayDbContext context = new HomeMyDayDbContext(optionsBuilder.Options); context.FaqCategory.AddRange( new FaqCategory() { CategoryName = "TestA" }, new FaqCategory() { CategoryName = "TestB" }, new FaqCategory() { CategoryName = "TestC" } ); context.SaveChanges(); IFaqRepository repository = new EFFaqRepository(context); IFaqManager manager = new FaqManager(repository); var target = new FaqController(manager); var result = target.Index(1, 10).Result as ViewResult; var model = result.Model as IEnumerable <FaqCategory>; Assert.NotNull(model); Assert.True(model.Count() == 3); }
public void TestFilledReviews() { var optionsBuilder = new DbContextOptionsBuilder <HomeMyDayDbContext>(); optionsBuilder.UseInMemoryDatabase(Guid.NewGuid().ToString()); var context = new HomeMyDayDbContext(optionsBuilder.Options); context.Reviews.Add(new Review() { Id = 1, Name = "TestReview", Accommodation = new Accommodation() { Id = 1, Name = "TestAccommodation" }, Approved = true, Date = DateTime.Now, Title = "Test", Text = "Dit was een goede vakantie!" }); context.SaveChanges(); IReviewRepository reviewRepository = new EFReviewRepository(context, null); IReviewManager reviewManager = new ReviewManager(reviewRepository); var target = new ReviewController(reviewManager); var result = target.Index(); var model = result.Model as IEnumerable <ReviewViewModel>; Assert.NotNull(model); Assert.Equal("TestReview", model.FirstOrDefault().Name); }
public void TestEmptySearchAccommodations() { var optionsBuilder = new DbContextOptionsBuilder <HomeMyDayDbContext>(); optionsBuilder.UseInMemoryDatabase(Guid.NewGuid().ToString()); HomeMyDayDbContext context = new HomeMyDayDbContext(optionsBuilder.Options); IAccommodationRepository repository = new EFAccommodationRepository(context); IReviewRepository reviewRepo = new EFReviewRepository(context, repository); IAccommodationManager manager = new AccommodationManager(repository, reviewRepo); SearchController target = new SearchController(manager); AccommodationSearchViewModel searchModel = new AccommodationSearchViewModel() { StartDate = new DateTime(2017, 10, 12), EndDate = new DateTime(2017, 10, 22), Location = "Gilze", Persons = 4 }; ViewResult result = target.Results(searchModel); AccommodationSearchResultsViewModel model = result.Model as AccommodationSearchResultsViewModel; Assert.NotNull(model); Assert.NotNull(model.Search); Assert.Empty(model.Accommodations); Assert.Equal(searchModel, model.Search); Assert.Equal("NoResults", result.ViewName); }
public async void TestSaveNotExistingAccommodationWithNotExistingId() { var optionsBuilder = new DbContextOptionsBuilder <HomeMyDayDbContext>(); optionsBuilder.UseInMemoryDatabase(Guid.NewGuid().ToString()); HomeMyDayDbContext context = new HomeMyDayDbContext(optionsBuilder.Options); Accommodation existingAccommodation = new Accommodation() { Id = 2, Description = DEFAULT_ACCOMMODATION_DESCRIPTION, Name = "Example Name", Country = "Unknown", MaxPersons = 2 }; await context.Accommodations.AddAsync(existingAccommodation); await context.SaveChangesAsync(); IAccommodationRepository repository = new EFAccommodationRepository(context); // Change some values Accommodation accommodationToUpdate = new Accommodation() { Id = 3, Country = "The Netherlands", Name = "Updated name", Description = "Updated description", MaxPersons = 2 }; await Assert.ThrowsAsync <DbUpdateConcurrencyException>(() => repository.Save(accommodationToUpdate)); }
public void TestSearchDepartureAndArrivalReturnNoAccommodation() { var optionsBuilder = new DbContextOptionsBuilder <HomeMyDayDbContext>(); optionsBuilder.UseInMemoryDatabase(Guid.NewGuid().ToString()); HomeMyDayDbContext context = new HomeMyDayDbContext(optionsBuilder.Options); context.Accommodations.Add(new Accommodation() { NotAvailableDates = new List <DateEntity>() { new DateEntity() { Date = new DateTime(2017, 10, 12) }, new DateEntity() { Date = new DateTime(2017, 10, 13) }, new DateEntity() { Date = new DateTime(2017, 10, 14) }, new DateEntity() { Date = new DateTime(2017, 10, 15) }, new DateEntity() { Date = new DateTime(2017, 10, 16) }, new DateEntity() { Date = new DateTime(2017, 10, 17) }, new DateEntity() { Date = new DateTime(2017, 10, 18) }, new DateEntity() { Date = new DateTime(2017, 10, 19) }, new DateEntity() { Date = new DateTime(2017, 10, 20) }, new DateEntity() { Date = new DateTime(2017, 10, 21) }, new DateEntity() { Date = new DateTime(2017, 10, 22) }, }, Name = "Amsterdam", MaxPersons = 4 }); context.SaveChanges(); IAccommodationRepository repository = new EFAccommodationRepository(context); IEnumerable <Accommodation> searchResults = repository.Search("Amsterdam", new DateTime(2017, 10, 13), new DateTime(2017, 10, 19), 4); Assert.Empty(searchResults); }
public void TestAccommodationsFilledRepository() { var optionsBuilder = new DbContextOptionsBuilder <HomeMyDayDbContext>(); optionsBuilder.UseInMemoryDatabase(Guid.NewGuid().ToString()); HomeMyDayDbContext context = new HomeMyDayDbContext(optionsBuilder.Options); context.Accommodations.AddRange( new Accommodation() { Description = DEFAULT_ACCOMMODATION_DESCRIPTION, Recommended = false }, new Accommodation() { Description = DEFAULT_ACCOMMODATION_DESCRIPTION, Recommended = true }, new Accommodation() { Description = DEFAULT_ACCOMMODATION_DESCRIPTION, Recommended = false }, new Accommodation() { Description = DEFAULT_ACCOMMODATION_DESCRIPTION, Recommended = true } ); context.SaveChanges(); IAccommodationRepository repository = new EFAccommodationRepository(context); Assert.True(repository.Accommodations.Count() == 4); }
public void TestSearchLocationSpacesReturnAccommodation() { var optionsBuilder = new DbContextOptionsBuilder <HomeMyDayDbContext>(); optionsBuilder.UseInMemoryDatabase(Guid.NewGuid().ToString()); HomeMyDayDbContext context = new HomeMyDayDbContext(optionsBuilder.Options); context.Accommodations.Add(new Accommodation() { NotAvailableDates = new List <DateEntity>() { new DateEntity() { Date = new DateTime(2017, 10, 11) }, new DateEntity() { Date = new DateTime(2017, 10, 23) }, }, Location = "Amsterdam", MaxPersons = 4 }); context.SaveChanges(); IAccommodationRepository repository = new EFAccommodationRepository(context); IEnumerable <Accommodation> searchResults = repository.Search(" Amsterdam ", new DateTime(2017, 10, 11), new DateTime(2017, 10, 23), 4); Assert.NotEmpty(searchResults); }
public async void TestCategoryListWithItemsOnePageSizeTen() { var optionsBuilder = new DbContextOptionsBuilder <HomeMyDayDbContext>(); optionsBuilder.UseInMemoryDatabase(Guid.NewGuid().ToString()); HomeMyDayDbContext context = new HomeMyDayDbContext(optionsBuilder.Options); context.FaqCategory.AddRange( new FaqCategory() { CategoryName = "TestA" }, new FaqCategory() { CategoryName = "TestB" } ); await context.SaveChangesAsync(); IFaqRepository repository = new EFFaqRepository(context); PaginatedList <FaqCategory> paginatedCategories = await repository.ListCategories(1, 10); Assert.NotNull(paginatedCategories); Assert.Equal(2, paginatedCategories.Count); Assert.Equal(1, paginatedCategories.PageIndex); Assert.Equal(10, paginatedCategories.PageSize); Assert.Equal(1, paginatedCategories.TotalPages); Assert.False(paginatedCategories.HasPreviousPage); Assert.False(paginatedCategories.HasNextPage); }
public void TestFaqFilledList() { var optionsBuilder = new DbContextOptionsBuilder <HomeMyDayDbContext>(); optionsBuilder.UseInMemoryDatabase(Guid.NewGuid().ToString()); HomeMyDayDbContext context = new HomeMyDayDbContext(optionsBuilder.Options); context.FaqCategory.AddRange( new FaqCategory() { CategoryName = "TestA" }, new FaqCategory() { CategoryName = "TestB" } ); context.SaveChanges(); IFaqRepository repository = new EFFaqRepository(context); var faqCategories = repository.ListCategories(); Assert.NotNull(faqCategories); Assert.True(faqCategories.Result.Count() == 2); }
public void TestFaqFilledRepository() { var optionsBuilder = new DbContextOptionsBuilder <HomeMyDayDbContext>(); optionsBuilder.UseInMemoryDatabase(Guid.NewGuid().ToString()); HomeMyDayDbContext context = new HomeMyDayDbContext(optionsBuilder.Options); context.FaqCategory.AddRange( new FaqCategory() { CategoryName = "TestA" }, new FaqCategory() { CategoryName = "TestB" }, new FaqCategory() { CategoryName = "TestC" } ); context.SaveChanges(); IFaqRepository repository = new EFFaqRepository(context); Assert.True(repository.GetCategoriesAndQuestions().Count() == 3); }
public void TestArgumentExceptionNullOnSubscription() { var optionsBuilder = new DbContextOptionsBuilder <HomeMyDayDbContext>(); optionsBuilder.UseInMemoryDatabase(Guid.NewGuid().ToString()); var context = new HomeMyDayDbContext(optionsBuilder.Options); var repository = new EFNewspaperRepository(context); Assert.Throws <ArgumentNullException>(() => repository.Subscribe(null)); }
public void TestAccommodationsEmptyRepository() { var optionsBuilder = new DbContextOptionsBuilder <HomeMyDayDbContext>(); optionsBuilder.UseInMemoryDatabase(Guid.NewGuid().ToString()); HomeMyDayDbContext context = new HomeMyDayDbContext(optionsBuilder.Options); IAccommodationRepository repository = new EFAccommodationRepository(context); Assert.Empty(repository.Accommodations); }
public void TestSearchReturnAfterDeparture() { var optionsBuilder = new DbContextOptionsBuilder <HomeMyDayDbContext>(); optionsBuilder.UseInMemoryDatabase(Guid.NewGuid().ToString()); HomeMyDayDbContext context = new HomeMyDayDbContext(optionsBuilder.Options); IAccommodationRepository repository = new EFAccommodationRepository(context); Assert.Throws <ArgumentOutOfRangeException>(() => repository.Search("Amsterdam", new DateTime(2017, 10, 12), new DateTime(2017, 10, 11), 4)); }
public void TestSearchEmptyGuests() { var optionsBuilder = new DbContextOptionsBuilder <HomeMyDayDbContext>(); optionsBuilder.UseInMemoryDatabase(Guid.NewGuid().ToString()); HomeMyDayDbContext context = new HomeMyDayDbContext(optionsBuilder.Options); IAccommodationRepository repository = new EFAccommodationRepository(context); Assert.Throws <ArgumentNullException>(() => repository.Search("Amsterdam", DateTime.Now, DateTime.Now, 0)); }
public void TestGetIdBelowZeroAccommodation() { var optionsBuilder = new DbContextOptionsBuilder <HomeMyDayDbContext>(); optionsBuilder.UseInMemoryDatabase(Guid.NewGuid().ToString()); HomeMyDayDbContext context = new HomeMyDayDbContext(optionsBuilder.Options); IAccommodationRepository repository = new EFAccommodationRepository(context); Assert.Throws <ArgumentOutOfRangeException>(() => repository.GetAccommodation(0)); }
public void TestFaqEmptyRepository() { var optionsBuilder = new DbContextOptionsBuilder <HomeMyDayDbContext>(); optionsBuilder.UseInMemoryDatabase(Guid.NewGuid().ToString()); HomeMyDayDbContext context = new HomeMyDayDbContext(optionsBuilder.Options); IFaqRepository repository = new EFFaqRepository(context); Assert.Empty(repository.GetCategoriesAndQuestions()); }