Exemple #1
0
        // GET: Track/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Track track = db.Find(id);

            if (track == null)
            {
                return(HttpNotFound());
            }
            return(View(track));
        }
Exemple #2
0
        public async Task Find_given_existing_id_returns_mapped_TrackDTO()
        {
            using (var connection = new SqliteConnection("DataSource=:memory:"))
            {
                connection.Open();

                var builder = new DbContextOptionsBuilder <SlotCarContext>()
                              .UseSqlite(connection);

                var context = new SlotCarContext(builder.Options);
                await context.Database.EnsureCreatedAsync();

                var entity = new Track
                {
                    Name           = "name",
                    LengthInMeters = 12.5,
                    BestLapInTicks = TimeSpan.FromSeconds(6.3).Ticks,
                    MaxCars        = 4,
                    Races          = new[] { new Race {
                                                 NumberOfLaps = 12
                                             }, new Race {
                                                 NumberOfLaps = 24
                                             } }
                };

                context.Tracks.Add(entity);
                await context.SaveChangesAsync();

                var id = entity.Id;

                using (var repository = new TrackRepository(context))
                {
                    var track = await repository.Find(id);

                    Assert.Equal("name", track.Name);
                    Assert.Equal(12.5, track.LengthInMeters);
                    Assert.Equal(TimeSpan.FromSeconds(6.3), track.BestLap);
                    Assert.Equal(4, track.MaxCars);
                    Assert.Equal(2, track.NumberOfRaces);
                }
            }
        }
Exemple #3
0
        public async Task Find_given_non_existing_id_returns_null()
        {
            using (var connection = new SqliteConnection("DataSource=:memory:"))
            {
                connection.Open();

                var builder = new DbContextOptionsBuilder <SlotCarContext>()
                              .UseSqlite(connection);

                var context = new SlotCarContext(builder.Options);
                await context.Database.EnsureCreatedAsync();

                using (var repository = new TrackRepository(context))
                {
                    var track = await repository.Find(42);

                    Assert.Null(track);
                }
            }
        }
        public async Task Update_given_id_updates_track()
        {
            var track = new TrackCreateDTO()
            {
                Name = "Awesome Track"
            };
            var updatedTrack = new TrackUpdateDTO()
            {
                Name = "Awesome Track", MaxCars = 12, LengthInMeters = 5000
            };

            var repo = new TrackRepository(context);
            await repo.Create(track);

            var controller = new TracksController(repo);
            var put        = await controller.Put(1, updatedTrack) as OkObjectResult;

            var actual = await repo.Find(1);

            Assert.Equal(updatedTrack.MaxCars, actual.MaxCars);
            Assert.Equal(updatedTrack.LengthInMeters, actual.LengthInMeters);
        }