public void HasHighestGradedClimb_GivenClimbersWithHighestGrade_ShouldReturnTrue() { // Arrange. var climber1 = Substitute.For <IClimber>(); var climber2 = Substitute.For <IClimber>(); var climber3 = Substitute.For <IClimber>(); var climber4 = Substitute.For <IClimber>(); climber1.GradedRoutes.Returns( new[] { Route.Create("Route1 (30)"), Route.Create("Route2 (15)"), Route.Create("Route3 (20)") }); climber2.GradedRoutes.Returns( new[] { Route.Create("Route1 (15)"), Route.Create("Route2 (20)"), Route.Create("Route3 (25)") }); climber3.GradedRoutes.Returns( new[] { Route.Create("Route1 (20)"), Route.Create("Route2 (25)"), Route.Create("Route3 (30)") }); var climbers = new[] { climber1, climber2, climber3, climber4 }; // Act. var climber1Analysis = new ClimberAnalysis(climber1, 1, null, climbers); var climber2Analysis = new ClimberAnalysis(climber2, 1, null, climbers); var climber3Analysis = new ClimberAnalysis(climber3, 1, null, climbers); var climber4Analysis = new ClimberAnalysis(climber4, 1, null, climbers); // Assert. Assert.True(climber1Analysis.HasHighestGradedClimb); Assert.False(climber2Analysis.HasHighestGradedClimb); Assert.True(climber3Analysis.HasHighestGradedClimb); Assert.False(climber4Analysis.HasHighestGradedClimb); }
public void RankDelta_GivenNoRankChange_ShouldReturnZero() { // Arrange. var climber = Substitute.For <IClimber>(); // Act. var testObject = new ClimberAnalysis( climber, 2, 2, new IClimber[0]); // Assert. Assert.AreEqual(0, testObject.RankDelta); }
public void RankDelta_GivenDroppedARank_ShouldReturnNegativeOne() { // Arrange. var climber = Substitute.For <IClimber>(); // Act. var testObject = new ClimberAnalysis( climber, 2, 1, new IClimber[0]); // Assert. Assert.AreEqual(-1, testObject.RankDelta); }
public void HighestGradeClimbed_GivenClimberWithNoClimbs_ShouldReturnGradeOfHighestClimbAsNull() { // Arrange. var climber = Substitute.For <IClimber>(); climber.Routes.Returns(new List <Route>()); var testObject = new ClimberAnalysis(climber, 1, null, new[] { climber }); // Act. int?result = testObject.HighestGradeClimbed; // Assert. Assert.False(result.HasValue); Assert.IsNull(result); }
public void AnalysedClimbersInRankOrder_GivenNoPriorRankings_ShouldReturnCorrectDelta() { // Arrange. Climber[] climbers = { Climber.Create("Climber1", new[] { Route.Create("C1R1") }, null), Climber.Create("Climber2", new[] { Route.Create("C2R1"), Route.Create("C2R2")}, null) }; var priorAnalyses = new ClimberAnalysis[0]; // Act. var testObject1 = new Scoreboard(climbers, priorAnalyses); var testObject2 = new Scoreboard(climbers, null); // Assert. Assert.AreEqual(0, testObject1.AnalysedClimbersInRankOrder[0].RankDelta); Assert.AreEqual(0, testObject2.AnalysedClimbersInRankOrder[0].RankDelta); }
public void AverageGradeClimbed_GivenClimberWithNoGradedClimbs_ShouldReturnGradeOfHighestClimbAsNull() { // Arrange. var climber = Substitute.For <IClimber>(); climber.Routes.Returns( new[] { Route.Create("Route1"), Route.Create("Route2"), Route.Create("Route3") }); var testObject = new ClimberAnalysis(climber, 1, null, new[] { climber }); // Act. int?result = testObject.AverageGradeClimbed; // Assert. Assert.False(result.HasValue); }
public void AverageGradeClimbed_GivenClimberWithClimbs_ShouldReturnGradeOfAverageClimb() { // Arrange. var climber = Substitute.For <IClimber>(); climber.GradedRoutes.Returns( new[] { Route.Create("Route1 (10)"), Route.Create("Route2 (20)"), }); var testObject = new ClimberAnalysis(climber, 1, null, new[] { climber }); // Act. int?result = testObject.AverageGradeClimbed; // Assert. Assert.True(result.HasValue); Assert.AreEqual(15, result); }