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 TestGetIdNotExistingAccommodation()
        {
            var optionsBuilder = new DbContextOptionsBuilder <HomeMyDayDbContext>();

            optionsBuilder.UseInMemoryDatabase(Guid.NewGuid().ToString());
            HomeMyDayDbContext context = new HomeMyDayDbContext(optionsBuilder.Options);

            context.Accommodations.Add(new Accommodation()
            {
                Location   = "Amsterdam",
                MaxPersons = 4,
                Id         = 1
            });

            context.SaveChanges();

            IAccommodationRepository repository = new EFAccommodationRepository(context);

            Assert.Throws <KeyNotFoundException>(() => repository.GetAccommodation(2));
        }
        public void TestGetIdExistingAccommodation()
        {
            var optionsBuilder = new DbContextOptionsBuilder <HomeMyDayDbContext>();

            optionsBuilder.UseInMemoryDatabase(Guid.NewGuid().ToString());
            HomeMyDayDbContext context = new HomeMyDayDbContext(optionsBuilder.Options);

            context.Accommodations.Add(new Accommodation()
            {
                Location   = "Amsterdam",
                MaxPersons = 4,
                Id         = 1
            });

            context.SaveChanges();

            IAccommodationRepository repository = new EFAccommodationRepository(context);

            Accommodation accommodation = repository.GetAccommodation(1);

            Assert.NotNull(accommodation);
            Assert.Equal("Amsterdam", accommodation.Location);
        }