public async Task TestRead() { using (raceRepository) { var track = new Track() { BestTime = 121213123, LengthInMeters = 123214, MaxCars = 50, Name = "RaceTrack" }; var race = new Race() { NumberOfLaps = 5, PlannedEnd = new DateTime(1920, 11, 11), PlannedStart = new DateTime(1920, 11, 11), Track = track }; context.Add(race); await context.SaveChangesAsync(); var raceCreate = new RaceCreateDTO() { PlannedEnd = race.PlannedEnd, PlannedStart = race.PlannedStart, Id = race.Id, ActualEnd = race.ActualEnd, ActualStart = race.ActualStart, NumberOfLaps = race.NumberOfLaps, TrackId = race.Track.Id }; Assert.Equal(raceCreate, await raceRepository.ReadAsync(race.Id)); } }
public async void ReadAsync_given_raceid_returns_race() { var connection = new SqliteConnection("DataSource=:memory:"); connection.Open(); var builder = new DbContextOptionsBuilder <SlotCarContext>().UseSqlite(connection); _context = new SlotCarContext(builder.Options); _context.Database.EnsureCreated(); var track = new Track() { Id = 1, Name = "Huge Lane", LengthInMeters = 1000, MaxCars = 4 }; var race = new Race() { Id = 1, TrackId = 1, Track = track, NumberOfLaps = 2, ActualStart = new DateTime(2015, 09, 28), PlannedEnd = new DateTime(2017, 09, 28) }; await _context.Races.AddAsync(race); await _context.SaveChangesAsync(); using (var repository = new RaceRepository(_context)) { var dto = await repository.ReadAsync(1); Assert.Equal(1, dto.Id); Assert.Equal(1, dto.TrackId); Assert.Equal(2, dto.NumberOfLaps); Assert.Equal(null, dto.PlannedStart); Assert.Equal(new DateTime(2015, 09, 28), dto.ActualStart); Assert.Equal(new DateTime(2017, 09, 28), dto.PlannedEnd); Assert.Equal(null, dto.ActualEnd); } }
public async void ReadAsync_returns_mapped_races() { var connection = new SqliteConnection("DataSource=:memory:"); connection.Open(); var builder = new DbContextOptionsBuilder <SlotCarContext>().UseSqlite(connection); _context = new SlotCarContext(builder.Options); _context.Database.EnsureCreated(); var track = new Track() { Id = 1, Name = "Huge Lane", LengthInMeters = 1000, MaxCars = 4 }; var race = new Race() { Id = 1, TrackId = 1, Track = track, NumberOfLaps = 2, ActualStart = new DateTime(2015, 09, 28), PlannedEnd = new DateTime(2017, 09, 28) }; var car = new Car() { Id = 1, Name = "BMW", Driver = "Hugh Hefner" }; var car2 = new Car() { Id = 2, Name = "Opel", Driver = "Barack Obama" }; var raceCar = new CarInRace() { CarId = car.Id, RaceId = race.Id, Car = car, Race = race, EndPosition = 2 }; var raceCar2 = new CarInRace() { CarId = car2.Id, RaceId = race.Id, Car = car2, Race = race, EndPosition = 1 }; await _context.Cars.AddAsync(car); await _context.Cars.AddAsync(car2); await _context.Races.AddAsync(race); await _context.CarsInRace.AddAsync(raceCar); await _context.CarsInRace.AddAsync(raceCar2); await _context.SaveChangesAsync(); using (var repository = new RaceRepository(_context)) { var dtos = await repository.ReadAsync(); var result = dtos.FirstOrDefault(); var expected = new List <RaceListDTO>(); expected.Add(new RaceListDTO() { Id = 1, TrackName = "Huge Lane", NumberOfLaps = 2, Start = new DateTime(2015, 09, 28), End = new DateTime(2017, 09, 28), MaxCars = 4, NumberOfCars = 2, WinningCar = "Opel", WinningDriver = "Barack Obama" }); var expectedFinal = expected.FirstOrDefault(); Assert.Equal(expectedFinal.Id, result.Id); Assert.Equal(expectedFinal.TrackName, result.TrackName); Assert.Equal(expectedFinal.Start, result.Start); Assert.Equal(expectedFinal.End, result.End); Assert.Equal(expectedFinal.MaxCars, result.MaxCars); Assert.Equal(expectedFinal.NumberOfCars, result.NumberOfCars); Assert.Equal(expectedFinal.WinningCar, result.WinningCar); Assert.Equal(expectedFinal.WinningDriver, result.WinningDriver); } }