public void MastersHandicap_WithCrewNotInMastersCompetition_ShouldThrowInvalidOperationException() { Crew crew = new Crew(); crew.Athletes.Add(new CrewAthlete { Athlete = new Athlete(), Age = 27 }); Assert.ThrowsException <InvalidOperationException>(() => crew.CalculateMastersHandicap(new Dictionary <MastersCategory, int>(), new Dictionary <MastersCategory, int>())); }
public void MastersHandicap_WithMastersACrew_ShouldReturnZero() { Crew crew = new Crew(); crew.Athletes.Add(new CrewAthlete { Athlete = new Athlete(), Age = 27 }); Award award = new Award { IsMasters = true, AwardId = 1 }; crew.Awards.Add(new CrewAward() { Award = award }); Assert.AreEqual(0, crew.CalculateMastersHandicap(new Dictionary <MastersCategory, int>(), new Dictionary <MastersCategory, int>())); }
public void MastersHandicap_WithNonMastersCrew_ShouldThrowInvalidOperationException() { Crew crew = new Crew(); crew.Athletes.Add(new CrewAthlete { Athlete = new Athlete(), Age = 26 }); Award award = new Award { IsMasters = true, AwardId = 1 }; crew.Awards.Add(new CrewAward() { Award = award }); Assert.ThrowsException <InvalidOperationException>(() => crew.CalculateMastersHandicap(new Dictionary <MastersCategory, int>(), new Dictionary <MastersCategory, int>())); }
public void MastersHandicap_WithMastersCrew_ShouldReturnCorrectHandicap(int age, int minutes, int seconds, int handicap) { Competition competition = new Competition(); competition.TimingPoints.Add(new TimingPoint { TimingPointId = 1 }); competition.TimingPoints.Add(new TimingPoint { TimingPointId = 2 }); Award award = new Award { IsMasters = true, AwardId = 1 }; competition.Awards.Add(award); Crew crewOne = new Crew(); crewOne.Results.Add(new Result { TimingPointId = 1, TimeOfDay = new TimeSpan(10, 0, 0) }); crewOne.Results.Add(new Result { TimingPointId = 2, TimeOfDay = new TimeSpan(10, minutes, seconds) }); crewOne.Awards.Add(new CrewAward { Award = award }); crewOne.Athletes.Add(new CrewAthlete { Athlete = new Athlete(), Age = 27 }); award.Crews.Add(new CrewAward { Crew = crewOne }); crewOne.Competition = competition; competition.Crews.Add(crewOne); Crew crewTwo = new Crew(); crewTwo.Results.Add(new Result { TimingPointId = 1, TimeOfDay = new TimeSpan(10, 0, 0) }); crewTwo.Results.Add(new Result { TimingPointId = 2, TimeOfDay = new TimeSpan(10, minutes, seconds + 20) }); crewTwo.Awards.Add(new CrewAward { Award = award }); crewTwo.Athletes.Add(new CrewAthlete { Athlete = new Athlete(), Age = age }); crewTwo.Competition = competition; award.Crews.Add(new CrewAward { Crew = crewTwo }); competition.Crews.Add(crewTwo); Dictionary <MastersCategory, int> lowerBounds = new Dictionary <MastersCategory, int>(); lowerBounds.Add(MastersCategory.B, handicap); Dictionary <MastersCategory, int> upperBounds = new Dictionary <MastersCategory, int>(); upperBounds.Add(MastersCategory.B, handicap); Assert.AreEqual(handicap, crewTwo.CalculateMastersHandicap(lowerBounds, upperBounds)); }