public void OutputCorrect() { Mock <IConsole> console = new Mock <IConsole>(MockBehavior.Strict); Mock <IDieRoller> diceRoller = new Mock <IDieRoller>(MockBehavior.Strict); console.Setup(x => x.Read()).Returns("D1 D2 D4"); var printSequence = new Moq.MockSequence(); console.InSequence(printSequence).Setup(x => x.Write("Category: Ones")).Verifiable(); console.InSequence(printSequence).Setup(x => x.Write("Dice: D1:2 D2:4 D3:1 D4:6 D5:1")).Verifiable(); console.InSequence(printSequence).Setup(x => x.Write("[1] Dice to re-run:")).Verifiable(); console.InSequence(printSequence).Setup(x => x.Write("Dice: D1:1 D2:5 D3:1 D4:2 D5:1")).Verifiable(); console.InSequence(printSequence).Setup(x => x.Write("[2] Dice to re-run: ")).Verifiable(); var fakeDieRoller = new FakeDieRoller(new List <int> { 2, 4, 1, 6, 1, 1, 5, 2 }); var yathtzee = new Yathzee(console.Object, fakeDieRoller); yathtzee.Play(); console.VerifyAll(); }