Finish() public method

Method that is to be run when the Wizard is finished. This method should be overridden to do all persistance that is required. This raises the WizardFinished event which allows you to close forms or do anything else required.
public Finish ( ) : void
return void
        public void Test_Finish_WhenNotLast_ShouldCallCurrentStepMoveOn()
        {
            //-----------------------Setup TestPack----------------------
            WizardController wizardController = new WizardController();

            IWizardStep step1 = MockRepository.GenerateMock<IWizardStep>();
            step1.Stub(wizardStep => wizardStep.CanFinish()).Return(true);
            wizardController.AddStep(step1);
            wizardController.AddStep(step1);

            wizardController.GetFirstStep();
            //------------------------Assert Precondition----------------
            Assert.AreSame(step1, wizardController.GetCurrentStep());
            Assert.IsFalse(wizardController.IsLastStep());
            Assert.IsTrue(wizardController.CanFinish(), "Should be able to finish this");
            step1.AssertWasNotCalled(step => step.MoveOn());
            //------------------------Execute----------------------------
            wizardController.Finish();
            //------------------------Verify Result ---------------------
            step1.AssertWasCalled(step => step.MoveOn());//Should now be able to call finish even when not last step
        }
        public void TestFinish_FiresEvent()
        {
            //-----------------------Setup TestPack----------------------
            WizardController wizardController = new WizardController();
            bool wizardFinishedFires = false;
            wizardController.WizardFinished += delegate { wizardFinishedFires = true; };
            IWizardStep step1 = _mock.StrictMock<IWizardStep>();
            wizardController.AddStep(step1);

            wizardController.GetNextStep();
            //------------------------Execute----------------------------
            wizardController.Finish();
            //------------------------Verify Result ---------------------
            Assert.IsTrue(wizardFinishedFires);
        }
        public void Test_Finish_ShouldCallCurrentStepMoveOn()
        {
            //-----------------------Setup TestPack----------------------
            WizardController wizardController = new WizardController();

            IWizardStep step1 = MockRepository.GenerateMock<IWizardStep>();
            wizardController.AddStep(step1);

            wizardController.GetFirstStep();
            //------------------------Assert Precondition----------------
            Assert.AreSame(step1, wizardController.GetCurrentStep());
            step1.AssertWasNotCalled(step => step.MoveOn());
            //------------------------Execute----------------------------
            wizardController.Finish();
            //------------------------Verify Result ---------------------
            step1.AssertWasCalled(step => step.MoveOn());
        }
        public void Test_FinishError()
        {

            WizardController wizardController = new WizardController();

            IWizardStep step1 = MockRepository.GenerateMock<IWizardStep>();
            step1.Stub(wizardStep => wizardStep.CanFinish()).Return(false);
            wizardController.AddStep(step1);
            wizardController.AddStep(step1);

            wizardController.GetFirstStep();
            //------------------------Assert Precondition----------------
            Assert.AreSame(step1, wizardController.GetCurrentStep());
            Assert.IsFalse(wizardController.IsLastStep());
            Assert.IsFalse(wizardController.CanFinish(), "Should not be able to finish this");
            //------------------------Execute----------------------------
            try
            {
                wizardController.Finish();
                Assert.Fail("Expected to throw an WizardStepException");
            }
            //---------------Test Result -----------------------
            catch (WizardStepException ex)
            {
                StringAssert.Contains("Invalid call to Finish(), not at last step", ex.Message);
            }
        }