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));
        }
Example #2
0
        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);
        }
Example #4
0
        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);
        }
Example #5
0
        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);
            }
        }