public void BowlingEconomy_is_null_when_overs_is_0()
        {
            var bowlingFigures = new BowlingFigures
            {
                Overs        = 0,
                RunsConceded = 10
            };
            var calculator = new BowlingFiguresCalculator(Mock.Of <IOversHelper>());

            var result = calculator.BowlingEconomy(bowlingFigures);

            Assert.Null(result);
        }
        public void BowlingStrikeRate_is_null_when_wickets_is_0()
        {
            var bowlingFigures = new BowlingFigures
            {
                Overs   = 5,
                Wickets = 0
            };
            var calculator = new BowlingFiguresCalculator(Mock.Of <IOversHelper>());

            var result = calculator.BowlingStrikeRate(bowlingFigures);

            Assert.Null(result);
        }
        public void BowlingAverage_is_correct_to_two_decimal_places_when_returning_fractions()
        {
            var bowlingFigures = new BowlingFigures
            {
                RunsConceded = 32,
                Wickets      = 3
            };
            var calculator = new BowlingFiguresCalculator(Mock.Of <IOversHelper>());

            var result = calculator.BowlingAverage(bowlingFigures);

            Assert.Equal(10.67M, result);
        }
        public void BowlingAverage_is_correct_for_integers()
        {
            var bowlingFigures = new BowlingFigures
            {
                RunsConceded = 30,
                Wickets      = 2
            };
            var calculator = new BowlingFiguresCalculator(Mock.Of <IOversHelper>());

            var result = calculator.BowlingAverage(bowlingFigures);

            Assert.Equal(15, result);
        }
        public void BowlingAverage_is_null_when_wickets_is_0()
        {
            var bowlingFigures = new BowlingFigures
            {
                RunsConceded = 10,
                Wickets      = 0
            };
            var calculator = new BowlingFiguresCalculator(Mock.Of <IOversHelper>());

            var result = calculator.BowlingAverage(bowlingFigures);

            Assert.Null(result);
        }
        public void BowlingStrikeRate_is_correct_to_two_decimal_places_when_returning_fractions()
        {
            var bowlingFigures = new BowlingFigures
            {
                Overs   = 10,
                Wickets = 9
            };
            var oversHelper = new Mock <IOversHelper>();

            oversHelper.Setup(x => x.OversToBallsBowled(bowlingFigures.Overs.Value)).Returns(80);
            var calculator = new BowlingFiguresCalculator(oversHelper.Object);

            var result = calculator.BowlingStrikeRate(bowlingFigures);

            Assert.Equal(8.89M, result);
        }
        public void BowlingStrikeRate_is_correct_for_incomplete_overs()
        {
            var bowlingFigures = new BowlingFigures
            {
                Overs   = 2.4M,
                Wickets = 2
            };
            var oversHelper = new Mock <IOversHelper>();

            oversHelper.Setup(x => x.OversToBallsBowled(bowlingFigures.Overs.Value)).Returns(20);
            var calculator = new BowlingFiguresCalculator(oversHelper.Object);

            var result = calculator.BowlingStrikeRate(bowlingFigures);

            Assert.Equal(10, result);
        }
        public void BowlingEconomy_is_correct_for_incomplete_overs()
        {
            var bowlingFigures = new BowlingFigures
            {
                Overs        = 3.4M,
                RunsConceded = 28
            };
            var oversHelper = new Mock <IOversHelper>();

            oversHelper.Setup(x => x.OversToBallsBowled(bowlingFigures.Overs.Value)).Returns(28);
            var calculator = new BowlingFiguresCalculator(oversHelper.Object);

            var result = calculator.BowlingEconomy(bowlingFigures);

            Assert.Equal(8, result);
        }
        public void BowlingEconomy_is_correct_to_two_decimal_places_when_returning_fractions()
        {
            var bowlingFigures = new BowlingFigures
            {
                Overs        = 4,
                RunsConceded = 41
            };
            var oversHelper = new Mock <IOversHelper>();

            oversHelper.Setup(x => x.OversToBallsBowled(bowlingFigures.Overs.Value)).Returns(32);
            var calculator = new BowlingFiguresCalculator(oversHelper.Object);

            var result = calculator.BowlingEconomy(bowlingFigures);

            Assert.Equal(10.25M, result);
        }