public async Task Run_executes_a_tasks_dependencies_before_running_the_task() { // ARRANGE var task1 = new TestTask1(); var task2 = new TestTask2(); var task3 = new TestTask3(); var task4 = new TestTask4(); var sut = new ChangeLogPipeline(m_Logger, new IChangeLogTask[] { task1, task2, task3, task4 }); // ACT var result = await sut.RunAsync(); // ASSERT Assert.True(result.Success); Assert.Collection( result.ExecutedTasks, executedTask => Assert.Same(task2, executedTask.Task), executedTask => Assert.Same(task1, executedTask.Task), executedTask => Assert.Same(task3, executedTask.Task), executedTask => Assert.Same(task4, executedTask.Task) ); Assert.Empty(result.PendingTasks); }
public void IsRunning_set_to_correct_values() { var task = new TestTask1(); Assert.IsFalse(task.IsRunning); task.Start(_viewDeck); Assert.IsTrue(task.IsRunning); }
public void Current_is_null_when_not_running() { var task = new TestTask1(); Assert.IsNull(UITask.Current); task.Start(_viewDeck); // not navigating, so should be null again Assert.IsNull(UITask.Current); // Presenter1 has a check that UITask.Current is non-null when it is initializing. }
public void NavigateCommands_are_created() { var task = new TestTask1(); task.Start(_viewDeck); var presenter = task.CurrentNode.Presenter as Presenter1; Assert.IsNotNull(presenter); Assert.IsNotNull(presenter.Next); Assert.IsNotNull(presenter.Error); Assert.AreNotSame(presenter.Next, presenter.Error); }
public void Can_navigate_to_next_node() { var task = new TestTask1(); task.Start(_viewDeck); var view1 = task.CurrentNode.View as View1; Assert.IsNotNull(view1); view1.ClickButton1(); var view2 = task.CurrentNode.View as View2; Assert.IsNotNull(view2); view2.ClickBackButton(); var view3 = task.CurrentNode.View as View1; Assert.IsNotNull(view3); }
public void Can_access_nodes_before_start() { var task = new TestTask1(); Assert.IsNotNull(task.Nodes); Assert.AreEqual(3, task.Nodes.Count); }
public void Container_injects_different_navigate_command_objects() { var task = new TestTask1(); task.Start(_viewDeck); var presenter1 = task.CurrentNode.Presenter as Presenter1; Assert.IsNotNull(presenter1); Assert.IsNotNull(presenter1.Next); Assert.IsNotNull(presenter1.Error); Assert.AreNotSame(presenter1.Next, presenter1.Error); }
public void Container_injects_task_objects() { var task = new TestTask1(); task.Start(_viewDeck); var presenter1 = task.CurrentNode.Presenter as Presenter1; Assert.IsNotNull(presenter1); Assert.AreSame(task, presenter1.UITask); Assert.AreSame(task, presenter1.TestTask1); Assert.AreSame(_viewDeck, presenter1.ViewDeck); Assert.AreSame(task.Nodes[0], presenter1.UINode); }
public void Task_finishes_when_EndTask_called() { var taskCompleteEventRaised = false; var task = new TestTask1(); task.TaskComplete += delegate { taskCompleteEventRaised = true; }; task.Start(_viewDeck); var view1 = task.CurrentNode.View as View1; Assert.IsNotNull(view1); view1.ClickButton1(); task.EndTask(); Assert.IsFalse(task.IsRunning); Assert.IsTrue(task.IsComplete); Assert.IsTrue(taskCompleteEventRaised); }
public override void Load() { if (!Directory.Exists(@".\Config")) { Directory.CreateDirectory(@".\Config"); } //load all settings!!! try { Settings = DemoMachineSettings.Load(@".\Config\Settings.cfg"); } catch (Exception ex) { MessageBox.Show($"加载配置文件失败:{ex.Message}"); } if (Settings == null) { Settings = new DemoMachineSettings(); Settings.Save(@".\Config\Settings.cfg"); } //try //{ // Import(); //} //catch (Exception ex) //{ // MessageBox.Show($"导入设备参数失败:{ex.Message}"); //} //load drivers Motion1 = new MotionCardWrapper(new VirtualCard()); VIO = new MotionCardWrapper(new VirtualCard()); MotionExs.Add(1, Motion1); MotionExs.Add(2, VIO); //load di do axis DiExs.Add(1, new DiEx() { Driver = Motion1 }); DoExs.Add(1, new DoEx() { Driver = Motion1 }); CylinderExs.Add(1, new CylinderEx() { Driver1 = Motion1, Driver2 = Motion1 }); AxisExs.Add(1, new AxisEx() { Driver = Motion1 }); //load station task var station1 = new Station(1, "Station1", this); var testTask1 = new TestTask1(1, "Test1", station1); //bind signals if (!FrameworkManager.IsSimulate) { // todo : to add signal configs //estop DiEstop.Add(2, new DiEx() { Driver = Motion1 }); //start/stop/reset button DiStart.Add(1, new DiEx() { Driver = Motion1 }); DiStop.Add(1, new DiEx() { Driver = Motion1 }); DiReset.Add(1, new DiEx() { Driver = Motion1 }); //start/stop/reset button lamp DoLightGreen.Add(1, new DoEx() { Driver = Motion1 }); DoLightRed.Add(1, new DoEx() { Driver = Motion1 }); DoLightYellow.Add(1, new DoEx() { Driver = Motion1 }); //lamp DoLightGreen.Add(2, new DoEx() { Driver = Motion1 }); DoLightRed.Add(2, new DoEx() { Driver = Motion1 }); DoLightYellow.Add(2, new DoEx() { Driver = Motion1 }); DoBuzzer.Add(1, new DoEx() { Driver = Motion1 }); //station pause signals Stations[1].PauseSignals.Add(1, new DiEx() { Driver = Motion1 }); } }