const mock1 = new Mock()
.setup(instance => instance.some())
.returns(true);
const mock2 = new Mock()
.setup(instance => instance.some())
.returns(true);
//preferred way to implement
const sequence = new Sequence()
.insequence(mock1, instance => instance.some())
.insequence(sequence, instance => instance.some());
const sequence2 = new Sequence();
mock2.insequence(sequence2, instance => instance.some());
mock1.insequence(sequence2, instance => instance.some());
mock1.object().some();
mock2.object().some();
sequence.verify(Times.Once()); //ok
sequence.verify(Times.Newer()); //fail
sequence2.verify(); //fail