public async Task GetById_WithCorrectId_ShouldReturnCrew() { var authService = new Mock <IAuthorizationHelper>(); using (var context = provider.GetService <TimingSiteContext>()) using (var controller = new HeadRaceTimingSite.Api.Controllers.CrewController(authService.Object, mapper, context)) { Competition competition = new Competition(); Crew dbCrew = new Crew { BroeCrewId = 1, Competition = competition }; competition.Crews.Add(dbCrew); competition.TimingPoints.Add(new TimingPoint()); context.Competitions.Add(competition); context.SaveChanges(); var result = await controller.GetById(1).ConfigureAwait(false); var okResult = result as OkObjectResult; Assert.IsNotNull(okResult, "Should be Ok Object"); Assert.AreEqual(200, okResult.StatusCode); HeadRaceTimingSite.Api.Resources.Crew crew = okResult.Value as HeadRaceTimingSite.Api.Resources.Crew; Assert.IsNotNull(crew, "Should be Crew"); Assert.AreEqual(1, crew.Id); } }
public async Task Put_WithExistingCrew_ShouldUpdateCrew() { var authService = new Mock <IAuthorizationHelper>(); authService.Setup(x => x.AuthorizeAsync(It.IsAny <ClaimsPrincipal>(), It.IsAny <object>(), It.IsAny <string>())) .ReturnsAsync(AuthorizationResult.Success()); using (var context = provider.GetService <TimingSiteContext>()) using (var controller = new HeadRaceTimingSite.Api.Controllers.CrewController(authService.Object, mapper, context)) { Competition competition = new Competition { CompetitionId = 1 }; context.Competitions.Add(competition); Crew dbCrew = new Crew { BroeCrewId = 123456, BoatClass = BoatClass.SingleScull, ClubCode = "ABC", IsTimeOnly = false, Name = "Another BC", StartNumber = 5, Status = Crew.ResultStatus.Dsq, CompetitionId = competition.CompetitionId, Competition = competition }; competition.Crews.Add(dbCrew); context.SaveChanges(); HeadRaceTimingSite.Api.Resources.Crew crew = new HeadRaceTimingSite.Api.Resources.Crew { Id = 123456, BoatClass = BoatClass.Eight, ClubCode = "LDR", IsTimeOnly = true, Name = "Leander A", StartNumber = 1, Status = Crew.ResultStatus.Dns, CompetitionId = competition.CompetitionId }; var result = await controller.Put(1, 123456, crew).ConfigureAwait(false); var noContentResult = result as NoContentResult; Assert.IsNotNull(noContentResult, "Should be No Content"); Assert.AreEqual(204, noContentResult.StatusCode); Assert.AreEqual(1, competition.Crews.Count, "Should be one crew"); Assert.AreEqual(123456, competition.Crews[0].BroeCrewId); Assert.AreEqual(BoatClass.Eight, competition.Crews[0].BoatClass); Assert.AreEqual("LDR", competition.Crews[0].ClubCode); Assert.AreEqual(true, competition.Crews[0].IsTimeOnly); Assert.AreEqual("Leander A", competition.Crews[0].Name); Assert.AreEqual(1, competition.Crews[0].StartNumber); Assert.AreEqual(Crew.ResultStatus.Dns, competition.Crews[0].Status); } }