public async Task Delete_given_id_deletes_track() { var track = new TrackCreateDTO() { Name = "Awesome Track", MaxCars = 12, LengthInMeters = 5000 }; var repo = new TrackRepository(context); await repo.Create(track); var controller = new TracksController(repo); var response = await controller.Delete(1); Assert.IsType <OkResult>(response); Assert.Null(context.Tracks.Find(1)); }
public async Task Create_given_track_calls_SaveChangesAsync() { var context = new Mock <ISlotCarContext>(); context.Setup(c => c.Tracks.Add(It.IsAny <Track>())); using (var repository = new TrackRepository(context.Object)) { var track = new TrackCreateDTO { Name = "name" }; await repository.Create(track); } context.Verify(c => c.SaveChangesAsync(default(CancellationToken))); }
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); }
public async Task Create_given_track_adds_it() { var entity = default(Track); var context = new Mock <ISlotCarContext>(); context.Setup(c => c.Tracks.Add(It.IsAny <Track>())).Callback <Track>(t => entity = t); using (var repository = new TrackRepository(context.Object)) { var track = new TrackCreateDTO { Name = "name", LengthInMeters = 12.5, MaxCars = 4 }; await repository.Create(track); } Assert.Equal("name", entity.Name); Assert.Equal(12.5, entity.LengthInMeters); Assert.Equal(4, entity.MaxCars); }
public async Task Create_given_track_returns_new_Id() { var entity = default(Track); var context = new Mock <ISlotCarContext>(); context.Setup(c => c.Tracks.Add(It.IsAny <Track>())) .Callback <Track>(t => entity = t); context.Setup(c => c.SaveChangesAsync(default(CancellationToken))) .Returns(Task.FromResult(0)) .Callback(() => entity.Id = 42); using (var repository = new TrackRepository(context.Object)) { var track = new TrackCreateDTO { Name = "name" }; var id = await repository.Create(track); Assert.Equal(42, id); } }