///<summary>
 ///Creates a new call sequence for call order verification.
 ///</summary>
 ///<param name="behavior">Determines how verification works.
 ///Loose sequence verifies that calls were made in the specified order allowing any calls to happen inbetween them.
 ///Strict sequence does not allow any calls inbetween</param>
 public CallSequence(MockBehavior behavior = MockBehavior.Default)
 {
     if (behavior == MockBehavior.Loose)
       {
     callSequenceCursorStrategy = new LooseCallSequenceCursorStrategy();
       }
       else
       {
     callSequenceCursorStrategy = new StrictCallSequenceCursorStrategy();
       }
 }
 internal CallSequence(ICallSequenceCursorStrategy callSequenceCursorStrategy)
 {
     this.callSequenceCursorStrategy = callSequenceCursorStrategy;
 }