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);
        }
Exemplo n.º 5
0
        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);
        }