moq.ts icon indicating copy to clipboard operation
moq.ts copied to clipboard

Sequence support

Open dvabuzyarov opened this issue 5 years ago • 1 comments

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

dvabuzyarov avatar Feb 19 '20 14:02 dvabuzyarov

        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.

dvabuzyarov avatar Feb 23 '20 07:02 dvabuzyarov