public void Test_CompleteCurrentStep_ShouldCallStepMoveOn() { //---------------Set up test pack------------------- WizardController wizardController = new WizardController(); var step1 = MockRepository.GenerateMock<IWizardStep>(); wizardController.AddStep(step1); wizardController.GetFirstStep(); //---------------Assert Precondition---------------- Assert.AreEqual(1, wizardController.StepCount); Assert.AreSame(step1, wizardController.GetCurrentStep()); step1.AssertWasNotCalled(step => step.MoveOn()); // ---------------Execute Test ---------------------- wizardController.CompleteCurrentStep(); //---------------Test Result ----------------------- step1.AssertWasCalled(wizardStep => wizardStep.MoveOn()); }