public void Enforce_that_loops_must_be_disposed()
 {
     using (Sequence.Create())
     {
         Sequence.Loop();
     }
 }
        public void Loop_with_prior_missing_call()
        {
            using (Sequence.Create())
            {
                mock.Setup(_ => _.Method1()).InSequence();

                using (Sequence.Loop(Times.Exactly(1)))
                {
                    mock.Setup(_ => _.Method2()).InSequence();
                }

                Assert.Throws <SequenceException>(() => mock.Object.Method2());
            }
        }
        public void Loop_steps_with_non_loop_steps()
        {
            using (Sequence.Create())
            {
                mock.Setup(_ => _.Method1()).InSequence();

                using (Sequence.Loop(Times.Exactly(1)))
                {
                    mock.Setup(_ => _.Method2()).InSequence();
                }

                mock.Setup(_ => _.Method3()).InSequence();

                mock.Object.Method1();
                mock.Object.Method2();
                mock.Object.Method3();
            }
        }
 public void Enforce_active_sequence_for_loop()
 {
     Assert.Throws <SequenceUsageException>(() => Sequence.Loop());
 }