public async Task GetApplicableRateAsync_NightRate() { //Night Rate using (var context = new CarParkContext()) { var repository = new CarParkRepository(context); var entry = DateTime.Parse("20/08/2020 07:30:00 PM"); var exit = DateTime.Parse("21/08/2020 04:30:00 PM"); //Act var rate = await repository.GetApplicableRateAsync(entry, exit); //Assert Assert.True(rate.Name == "Night Rate"); Assert.True(rate.Price == 6.5); } //Night Rate instead of Weekend rate using (var context = new CarParkContext()) { var repository = new CarParkRepository(context); var entry = DateTime.Parse("21/08/2020 11:30:00 PM"); var exit = DateTime.Parse("22/08/2020 04:30:00 PM"); //Act var rate = await repository.GetApplicableRateAsync(entry, exit); //Assert Assert.True(rate.Name == "Night Rate"); Assert.True(rate.Price == 6.5); } }
public void Dispose() { using (var context = new CarParkContext()) { context.Database.EnsureDeleted(); } }
public CarParkRepositoryTests() { using (var context = new CarParkContext()) { context.Database.EnsureCreated(); //Arrange context.Seed().ConfigureAwait(true); } }
public async Task GetApplicableRateAsync_StandardRate_Hourly() { //Standard Rate - Hourly using (var context = new CarParkContext()) { var repository = new CarParkRepository(context); var entry = DateTime.Parse("20/08/2020 09:30:00 PM"); var exit = DateTime.Parse("20/08/2020 11:35:00 PM"); //Act var rate = await repository.GetApplicableRateAsync(entry, exit); //Assert Assert.True(rate.Name == "Standard Rate"); Assert.True(rate.Price == 15); } }
public async Task GetApplicableRateAsync_WeekendRate() { //Weekend Rate using (var context = new CarParkContext()) { var repository = new CarParkRepository(context); var entry = DateTime.Parse("22/08/2020 07:30:00 PM"); var exit = DateTime.Parse("23/08/2020 04:30:00 PM"); //Act var rate = await repository.GetApplicableRateAsync(entry, exit); //Assert Assert.True(rate.Name == "Weekend Rate"); Assert.True(rate.Price == 10); } }
public async Task GetApplicableRateAsync_EarlyBird() { //Early Bird using (var context = new CarParkContext()) { var repository = new CarParkRepository(context); var entry = DateTime.Parse("20/08/2020 08:00:00 AM"); var exit = DateTime.Parse("20/08/2020 04:30:00 PM"); //Act var rate = await repository.GetApplicableRateAsync(entry, exit); //Assert Assert.True(rate.Name == "Early Bird"); Assert.True(rate.Price == 13); } }
public async static Task Seed(this CarParkContext context) { await context.Database.EnsureDeletedAsync(); await context.Database.EnsureCreatedAsync(); context.Rates.Add(new RateEntity { Name = "Early Bird", Type = RateType.Flat, RateDay = RateDay.Weekday, EntryMin = DateTime.ParseExact("06:00:00 AM", "h:mm:ss tt", CultureInfo.InvariantCulture), EntryMax = DateTime.ParseExact("09:00:00 AM", "h:mm:ss tt", CultureInfo.InvariantCulture), ExitMin = DateTime.ParseExact("03:30:00 PM", "h:mm:ss tt", CultureInfo.InvariantCulture), ExitMax = DateTime.ParseExact("11:30:00 PM", "h:mm:ss tt", CultureInfo.InvariantCulture), Price = 13 }); context.Rates.Add(new RateEntity { Name = "Night Rate", Type = RateType.Flat, RateDay = RateDay.Weekday, EntryMin = DateTime.ParseExact("06:00:00 PM", "h:mm:ss tt", CultureInfo.InvariantCulture), EntryMax = DateTime.ParseExact("11:59:00 PM", "h:mm:ss tt", CultureInfo.InvariantCulture), ExitMin = DateTime.ParseExact("03:30:00 PM", "h:mm:ss tt", CultureInfo.InvariantCulture).AddDays(1), ExitMax = DateTime.ParseExact("11:30:00 PM", "h:mm:ss tt", CultureInfo.InvariantCulture).AddDays(1), Price = 6.5 }); context.Rates.Add(new RateEntity { Name = "Weekend Rate", Type = RateType.Flat, RateDay = RateDay.Weekend, EntryMin = DateTime.ParseExact("12:00:00 AM", "h:mm:ss tt", CultureInfo.InvariantCulture), ExitMax = DateTime.ParseExact("12:00:00 AM", "h:mm:ss tt", CultureInfo.InvariantCulture), Price = 10 }); context.HourlyRates.Add(new HourlyRateEntity { Name = "Standard Rate", DurationMin = 0, DurationMax = 1, IsHourly = true, Price = 5 }); context.HourlyRates.Add(new HourlyRateEntity { Name = "Standard Rate", DurationMin = 1, DurationMax = 2, IsHourly = true, Price = 10 }); context.HourlyRates.Add(new HourlyRateEntity { Name = "Standard Rate", DurationMin = 2, DurationMax = 3, IsHourly = true, Price = 15 }); context.HourlyRates.Add(new HourlyRateEntity { Name = "Standard Rate", DurationMin = 3, DurationMax = int.MaxValue, IsDaily = true, Price = 20 }); await context.SaveChangesAsync(); }
public HomeController(CarParkContext parkcontext) { _parkcontext = parkcontext; }
public CarParkRepository(CarParkContext carParkContext) { carParkContext.Database.EnsureCreated(); this.carParkContext = carParkContext; }
public RecordSelectedController(CarParkContext parkcontext) { _parkcontext = parkcontext; }