moq.ts
moq.ts copied to clipboard
Sequence support
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
mock2.object().toString();
mock1.object().method();
mock1.object().toString();
mock1.object().method();
mock2.object().method();
new Sequence()
.insequence(mock1, instance => instance.toString(), Times.Never())
.insequence(mock1, instance => instance.method(), Times.Exactly(2))
.insequence(mock1, instance => instance.toString(), Times.Never())
.insequence(mock2, instance => instance.method())
.verify();
at the moment I cannot solve the problem of pattern finding. Looking for help.