public async Task GetByCrew_WithCorrectId_ShouldReturnCorrectResults() { using (var context = provider.GetService <TimingSiteContext>()) using (var controller = new HeadRaceTimingSite.Api.Controllers.ResultController(mapper, context)) { TimingPoint timingPoint = new TimingPoint(1); Crew dbCrew = new Crew { CrewId = 1, BroeCrewId = 123456 }; dbCrew.Results.Add(new Result(timingPoint, new TimeSpan(10, 0, 0))); dbCrew.Competition = new Competition(); dbCrew.Competition.TimingPoints.Add(timingPoint); context.Crews.Add(dbCrew); context.SaveChanges(); var result = await controller.GetByCrew(123456).ConfigureAwait(false); var okResult = result as OkObjectResult; Assert.IsNotNull(okResult, "Should return Ok"); Assert.AreEqual(200, okResult.StatusCode); List <HeadRaceTimingSite.Api.Resources.Result> results = okResult.Value as List <HeadRaceTimingSite.Api.Resources.Result>; Assert.IsNotNull(results, "Should return List<Result>"); Assert.AreEqual(1, results.Count); Assert.AreEqual(new TimeSpan(10, 0, 0), results[0].TimeOfDay); } }
public async Task Put_WithExistingResult_ShouldAmendResult() { using (var context = provider.GetService <TimingSiteContext>()) using (var controller = new HeadRaceTimingSite.Api.Controllers.ResultController(mapper, context)) { Crew crew = new Crew { BroeCrewId = 1 }; crew.Results.Add(new Result { TimingPointId = 1, TimeOfDay = new TimeSpan(9, 0, 0) }); context.Crews.Add(crew); context.SaveChanges(); HeadRaceTimingSite.Api.Resources.Result result = new HeadRaceTimingSite.Api.Resources.Result { TimeOfDay = new TimeSpan(10, 0, 0) }; var response = await controller.Put(1, 1, result).ConfigureAwait(false); var noContentResult = response as NoContentResult; Assert.IsNotNull(noContentResult); Assert.AreEqual(204, noContentResult.StatusCode); Assert.AreEqual(1, crew.Results.Count, "Should be one result"); Assert.AreEqual(new TimeSpan(10, 0, 0), crew.Results[0].TimeOfDay); Assert.AreEqual(1, crew.Results[0].TimingPointId, "Should be for timing point 1"); } }
public async Task GetByCrewAndTimingPoint_WithIncorrectCrewId_ShouldReturn404() { using (var context = provider.GetService <TimingSiteContext>()) using (var controller = new HeadRaceTimingSite.Api.Controllers.ResultController(mapper, context)) { var result = await controller.GetByCrewAndTimingPoint(1, 1).ConfigureAwait(false); var notFoundResult = result as NotFoundResult; Assert.IsNotNull(notFoundResult); Assert.AreEqual(404, notFoundResult.StatusCode); } }
public async Task GetByCrewAndTimingPoint_WithMissingResult_ShouldReturn404() { using (var context = provider.GetService <TimingSiteContext>()) using (var controller = new HeadRaceTimingSite.Api.Controllers.ResultController(mapper, context)) { Competition competition = new Competition(); competition.TimingPoints.Add(new TimingPoint(1)); Crew crew = new Crew { BroeCrewId = 1, Competition = competition }; context.Crews.Add(crew); context.SaveChanges(); var result = await controller.GetByCrewAndTimingPoint(1, 1).ConfigureAwait(false); var notFoundResult = result as NotFoundResult; Assert.IsNotNull(notFoundResult); Assert.AreEqual(404, notFoundResult.StatusCode); } }
public async Task Delete_WithValidCrewAndTimingPoint_ShouldDeleteResult() { using (var context = provider.GetService <TimingSiteContext>()) using (var controller = new HeadRaceTimingSite.Api.Controllers.ResultController(mapper, context)) { Crew dbCrew = new Crew { CrewId = 1, BroeCrewId = 123456 }; context.Crews.Add(dbCrew); Result result = new Result { TimingPointId = 1 }; dbCrew.Results.Add(result); context.SaveChanges(); var response = await controller.DeleteByCrewAndTimingPoint(123456, 1).ConfigureAwait(false); var noContentResult = response as NoContentResult; Assert.IsNotNull(noContentResult); Assert.AreEqual(204, noContentResult.StatusCode); Assert.AreEqual(0, dbCrew.Results.Count); } }