public void TestStepCount() { var tour = new Tour(); tour.Steps = new[] { new Step("1", "Header1", "Content1", "ID1"), new Step("2", "Header2", "Content2", "ID2"), new Step("3", "Header2", "Content2", "ID2"), }; var manager = new VisualElementManagerMock(tour.Steps); var tourRun = new TourRun(tour, manager, new WindowManagerMock(), new PopupNavigatorMock()); FeatureTour.SetTourRun(tourRun); tourRun.Start(); var vm = tourRun.GetPrivateField <TourViewModel>("myTourViewModel"); Assert.AreEqual(false, vm.HasTourFinished); Assert.AreEqual(3, vm.TotalStepsCount); Assert.AreEqual(1, vm.CurrentStepNo); tourRun.NextStep(); Assert.AreEqual(false, vm.HasTourFinished); Assert.AreEqual(3, vm.TotalStepsCount); Assert.AreEqual(2, vm.CurrentStepNo); tourRun.NextStep(); Assert.AreEqual(true, vm.HasTourFinished); Assert.AreEqual(3, vm.TotalStepsCount); Assert.AreEqual(3, vm.CurrentStepNo); tourRun.NextStep(); Assert.AreEqual(true, vm.HasTourFinished); Assert.AreEqual(3, vm.TotalStepsCount); Assert.AreEqual(3, vm.CurrentStepNo); tourRun.PreviousStep(); Assert.AreEqual(false, vm.HasTourFinished); Assert.AreEqual(3, vm.TotalStepsCount); Assert.AreEqual(2, vm.CurrentStepNo); FeatureTour.SetCurrentRunNull(); }
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); }
public void OnStepEnteredLeavedClosed() { var c = new Counter(); var navigator = FeatureTour.GetNavigator(); navigator.OnStepEntered("ID1").Execute(s => c.entered1++); navigator.OnStepEntered("ID2").Execute(s => c.entered2++); navigator.OnStepLeft("ID1").Execute(s => c.leaved1++); navigator.OnStepLeft("ID2").Execute(s => c.leaved2++); navigator.OnClosed().Execute(s => c.closed++); var tour = new Tour(); tour.Steps = new[] { new Step("1", "Header1", "Content1", "ID1"), new Step("2", "Header2", "Content2", "ID2"), }; var manager = new VisualElementManagerMock(tour.Steps); var tourRun = new TourRun(tour, manager, new WindowManagerMock(), new PopupNavigatorMock()); AssertIsCounter(c, 0, 0, 0, 0, 0); FeatureTour.SetTourRun(tourRun); AssertIsCounter(c, 0, 0, 0, 0, 0); tourRun.Start(); AssertIsCounter(c, 1, 0, 0, 0, 0); tourRun.NextStep(); AssertIsCounter(c, 1, 1, 1, 0, 0); tourRun.PreviousStep(); AssertIsCounter(c, 2, 1, 1, 1, 0); tourRun.Close(); AssertIsCounter(c, 2, 2, 1, 1, 1); FeatureTour.SetCurrentRunNull(); }