public void RemainingIterations_SetPositiveValue_SetsValue()
        {
            var repeat = new IterativeRepeatBehavior(5);

            repeat.RemainingIterations = 10;

            Assert.AreEqual(10, repeat.RemainingIterations);
        }
        public void RepeatPerformed_DecrementsRemainingIterations()
        {
            var repeat = new IterativeRepeatBehavior(5);

            repeat.RepeatPerformed();

            Assert.AreEqual(4, repeat.RemainingIterations);
        }
        public void RemainingIterations_SetPositiveValue_SetsValue()
        {
            var repeat = new IterativeRepeatBehavior (5);

            repeat.RemainingIterations = 10;

            Assert.AreEqual (10, repeat.RemainingIterations);
        }
        public void ShouldContinueToRepeat_NonZeroRemainingIterations_ReturnsTrue()
        {
            var repeat = new IterativeRepeatBehavior(1);

            bool should_continue = repeat.ShouldContinueToRepeat();

            Assert.IsTrue(should_continue);
        }
        public void ShouldContinueToRepeat_ZeroRemainingIterations_ReturnsFalse()
        {
            var repeat = new IterativeRepeatBehavior(1);

            repeat.RepeatPerformed();

            bool should_continue = repeat.ShouldContinueToRepeat();

            Assert.IsFalse(should_continue);
        }
        public void RepeatPerformed_CallMoreThanRemainingIterationsTotal_RemainingIterationsIsZero()
        {
            var repeat = new IterativeRepeatBehavior(3);

            repeat.RepeatPerformed();
            repeat.RepeatPerformed();
            repeat.RepeatPerformed();
            repeat.RepeatPerformed();
            repeat.RepeatPerformed();

            Assert.AreEqual(0, repeat.RemainingIterations);
        }
        public void RemainingIterations_SetZero_DoesNotthrow()
        {
            var repeat = new IterativeRepeatBehavior(10);

            repeat.RemainingIterations = 0;
        }
        public void RemainingIterations_SetNegative_Throws()
        {
            var repeat = new IterativeRepeatBehavior(25);

            Should.Throw <ArgumentOutOfRangeException> (() => repeat.RemainingIterations = -1);
        }
        public void Ctor_PositiveValue_SetsRemainingIterationsProperty()
        {
            var repeat = new IterativeRepeatBehavior(25);

            Assert.AreEqual(25, repeat.RemainingIterations);
        }
        public void RepeatPerformed_CallMoreThanRemainingIterationsTotal_RemainingIterationsIsZero()
        {
            var repeat = new IterativeRepeatBehavior (3);

            repeat.RepeatPerformed ();
            repeat.RepeatPerformed ();
            repeat.RepeatPerformed ();
            repeat.RepeatPerformed ();
            repeat.RepeatPerformed ();

            Assert.AreEqual (0, repeat.RemainingIterations);
        }
        public void RemainingIterations_SetZero_DoesNotthrow()
        {
            var repeat = new IterativeRepeatBehavior (10);

            repeat.RemainingIterations = 0;
        }
        public void RemainingIterations_SetNegative_Throws()
        {
            var repeat = new IterativeRepeatBehavior (25);

            Should.Throw<ArgumentOutOfRangeException> (() => repeat.RemainingIterations = -1);
        }
        public void Ctor_PositiveValue_SetsRemainingIterationsProperty()
        {
            var repeat = new IterativeRepeatBehavior (25);

            Assert.AreEqual (25, repeat.RemainingIterations);
        }
        public void ShouldContinueToRepeat_ZeroRemainingIterations_ReturnsFalse()
        {
            var repeat = new IterativeRepeatBehavior (1);

            repeat.RepeatPerformed ();

            bool should_continue = repeat.ShouldContinueToRepeat ();
            Assert.IsFalse (should_continue);
        }
        public void ShouldContinueToRepeat_NonZeroRemainingIterations_ReturnsTrue()
        {
            var repeat = new IterativeRepeatBehavior (1);

            bool should_continue = repeat.ShouldContinueToRepeat ();
            Assert.IsTrue (should_continue);
        }
        public void RepeatPerformed_DecrementsRemainingIterations()
        {
            var repeat = new IterativeRepeatBehavior (5);

            repeat.RepeatPerformed ();

            Assert.AreEqual (4, repeat.RemainingIterations);
        }