Example #1
0
        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);
        }
Example #2
0
		public void IsRunning_set_to_correct_values()
		{
			var task = new TestTask1();

			Assert.IsFalse(task.IsRunning);
			task.Start(_viewDeck);
			Assert.IsTrue(task.IsRunning);
		}
Example #3
0
		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.
		}
Example #4
0
		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);
		}
Example #5
0
		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);
		}
Example #6
0
		public void Can_access_nodes_before_start()
		{
			var task = new TestTask1();
			Assert.IsNotNull(task.Nodes);
			Assert.AreEqual(3, task.Nodes.Count);
		}
Example #7
0
		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);
		}
Example #8
0
		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);
		}
Example #9
0
		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);
		}
Example #10
0
        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
                });
            }
        }