public void OnStepDoable() { var d = new Doable(); var navigator = FeatureTour.GetNavigator(); navigator.ForStep("ID1").AttachDoable(s => d.do1++); navigator.ForStep("ID2").AttachDoable(s => d.do2++, s => true); navigator.ForStep("ID3").AttachDoable(s => d.do3++, s => false); var tour = new Tour(); tour.Steps = new[] { new Step("1", "Header1", "Content1", "ID1"), new Step("2", "Header2", "Content2", "ID2"), new Step("3", "Header3", "Content3", "ID3"), new Step("4", "Header4", "Content4", "ID4"), }; var manager = new VisualElementManagerMock(tour.Steps); var tourRun = new TourRun(tour, manager, new WindowManagerMock(), new PopupNavigatorMock()); tourRun.Start(); AssertIsDoable(d, 0, 0, 0); Assert.IsTrue(tourRun.ShowDoIt()); Assert.IsTrue(tourRun.CanDoIt()); tourRun.DoIt(); AssertIsDoable(d, 1, 0, 0); tourRun.NextStep(); Assert.IsTrue(tourRun.ShowDoIt()); Assert.IsTrue(tourRun.CanDoIt()); tourRun.DoIt(); AssertIsDoable(d, 1, 1, 0); tourRun.NextStep(); Assert.IsTrue(tourRun.ShowDoIt()); Assert.IsFalse(tourRun.CanDoIt()); tourRun.DoIt(); AssertIsDoable(d, 1, 1, 1); tourRun.NextStep(); Assert.IsFalse(tourRun.ShowDoIt()); Assert.IsFalse(tourRun.CanDoIt()); tourRun.DoIt(); AssertIsDoable(d, 1, 1, 1); }
private void AssertIsDoable(Doable d, int do1, int do2, int do3) { Assert.AreEqual(do1, d.do1); Assert.AreEqual(do2, d.do2); Assert.AreEqual(do3, d.do3); }