public async Task GetByCrewAndPosition_WithValidData_ShouldReturnAthlete() { using (var context = provider.GetService <TimingSiteContext>()) using (var controller = new HeadRaceTimingSite.Api.Controllers.AthleteController(mapper, context)) { Crew dbCrew = new Crew { BroeCrewId = 1, BoatClass = BoatClass.SingleScull }; dbCrew.Athletes.Add(new CrewAthlete { Athlete = new Athlete { MembershipNumber = "ABC123" }, Position = 1 }); context.Crews.Add(dbCrew); context.SaveChanges(); var result = await controller.GetByCrewAndPosition(1, 1).ConfigureAwait(false); var okResult = result as OkObjectResult; Assert.IsNotNull(okResult, "Should be Ok"); Assert.AreEqual(200, okResult.StatusCode); HeadRaceTimingSite.Api.Resources.Athlete athlete = okResult.Value as HeadRaceTimingSite.Api.Resources.Athlete; Assert.IsNotNull(athlete, "Should be Athlete"); Assert.AreEqual("ABC123", athlete.MembershipNumber); } }
public async Task GetByCrewAndPosition_WithIncorrectId_ShouldReturn404() { using (var context = provider.GetService <TimingSiteContext>()) using (var controller = new HeadRaceTimingSite.Api.Controllers.AthleteController(mapper, context)) { var result = await controller.GetByCrewAndPosition(1, 1).ConfigureAwait(false); var notFoundResult = result as NotFoundResult; Assert.IsNotNull(notFoundResult); Assert.AreEqual(404, notFoundResult.StatusCode); } }
public async Task GetByCrewAndPosition_WithPositionOverCrewSize_ShouldReturn400(BoatClass boatClass, int position) { using (var context = provider.GetService <TimingSiteContext>()) using (var controller = new HeadRaceTimingSite.Api.Controllers.AthleteController(mapper, context)) { context.Crews.Add(new Crew { BroeCrewId = 1, BoatClass = boatClass }); context.SaveChanges(); var result = await controller.GetByCrewAndPosition(1, position).ConfigureAwait(false); var badRequestResult = result as BadRequestResult; Assert.IsNotNull(badRequestResult, "Boatclass: {0}; Position: {1}", boatClass, position); Assert.AreEqual(400, badRequestResult.StatusCode); } }