aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.UnitTesting/MachineStudio
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/Tango.UnitTesting/MachineStudio')
-rw-r--r--Software/Visual_Studio/Tango.UnitTesting/MachineStudio/MachineStudio_TST.cs147
1 files changed, 147 insertions, 0 deletions
diff --git a/Software/Visual_Studio/Tango.UnitTesting/MachineStudio/MachineStudio_TST.cs b/Software/Visual_Studio/Tango.UnitTesting/MachineStudio/MachineStudio_TST.cs
new file mode 100644
index 000000000..b8c374d4f
--- /dev/null
+++ b/Software/Visual_Studio/Tango.UnitTesting/MachineStudio/MachineStudio_TST.cs
@@ -0,0 +1,147 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+using Tango.MachineStudio.Common.Automation;
+using TestStack.White;
+using TestStack.White.Factory;
+using TestStack.White.UIItems;
+using TestStack.White.UIItems.Finders;
+using TestStack.White.UIItems.ListBoxItems;
+using TestStack.White.UIItems.WindowItems;
+using TestStack.White.WindowsAPI;
+
+namespace Tango.UnitTesting.MachineStudio
+{
+ public static class AutomationExtensions
+ {
+ public static T GetByAutomationId<T>(this Window window, String id) where T : IUIItem
+ {
+ return window.Get<T>(SearchCriteria.ByAutomationId(id));
+ }
+ }
+
+ [TestClass]
+ [TestCategory("Machine Studio")]
+ public class MachineStudio_TST
+ {
+ private Window GetMachineStudioWindow()
+ {
+ var app = Application.AttachOrLaunch(new System.Diagnostics.ProcessStartInfo() { FileName = Helper.GetMachineStudioPath() });
+ var window = app.GetWindow("Tango", InitializeOption.NoCache);
+ return window;
+ }
+
+ private Window GetCurrentDialogWindow()
+ {
+ var app = Application.AttachOrLaunch(new System.Diagnostics.ProcessStartInfo() { FileName = Helper.GetMachineStudioPath() });
+ return app.GetWindows().LastOrDefault(x => x.IsModal);
+ }
+
+ private void Kill(int delay = 4000)
+ {
+ Thread.Sleep(delay);
+ var app = Application.AttachOrLaunch(new System.Diagnostics.ProcessStartInfo() { FileName = Helper.GetMachineStudioPath() });
+ app.Kill();
+ }
+
+ private void Wait(int delay = 1000)
+ {
+ Thread.Sleep(delay);
+ }
+
+ private void ConfirmMessageBox()
+ {
+ Wait();
+ var dialog = GetCurrentDialogWindow();
+
+ if (dialog != null)
+ {
+ dialog.Keyboard.PressSpecialKey(KeyboardInput.SpecialKeys.RETURN);
+ }
+ }
+
+ [TestMethod]
+ public void Login()
+ {
+ var window = GetMachineStudioWindow();
+
+ window.WaitTill(() => window.GetByAutomationId<Button>(UI.LoginButton) != null);
+
+ var btnLogin = window.GetByAutomationId<Button>(UI.LoginButton);
+
+ Thread.Sleep(1000);
+
+ btnLogin.Click();
+ }
+
+ [TestMethod]
+ public void Start_Developer_Module_Create_And_Delete_Job()
+ {
+ Login();
+
+ var window = GetMachineStudioWindow();
+
+ window.WaitTill(() => window.Get<Button>(SearchCriteria.ByAutomationId("Developer")) != null);
+
+ Wait(2000);
+
+ window.Get<Button>(SearchCriteria.ByAutomationId("Developer")).Click();
+
+ Wait();
+
+ window.GetByAutomationId<Button>(Developer.NewJobButton).Click();
+
+ Wait();
+
+ var jobsGrid = window.GetByAutomationId<ListView>(Developer.JobsDataGrid);
+ int jobsCount = jobsGrid.Items.Count;
+
+ var dialog = GetCurrentDialogWindow();
+
+ dialog.Keyboard.Enter("Unit Test Job");
+
+ Wait();
+
+ dialog.Keyboard.PressSpecialKey(KeyboardInput.SpecialKeys.RETURN);
+
+ Assert.AreEqual(jobsCount, jobsGrid.Items.Count - 1);
+
+ Wait();
+
+ var segmentsListBox = window.GetByAutomationId<ListBox>(Developer.SegmentsListBox);
+ int segmentsCount = segmentsListBox.Items.Count;
+
+ window.GetByAutomationId<Button>(Developer.AddSegmentButton).Click();
+
+ Assert.AreEqual(segmentsCount, segmentsListBox.Items.Count - 1);
+
+ window.GetByAutomationId<ListBox>(Developer.SegmentsListBox).Items[1].Click();
+
+ window.GetByAutomationId<Button>(Developer.AddBrushStopButton).Click();
+
+ window.GetByAutomationId<Button>(Developer.AddBrushStopButton).Click();
+
+ window.GetByAutomationId<Button>(Developer.SaveJobButton).Click();
+
+ Wait(2000);
+
+ window.GetByAutomationId<Button>(Developer.ToJobsButton).Click();
+
+ ConfirmMessageBox();
+
+ Wait();
+
+ window.GetByAutomationId<Button>(Developer.DeleteJobButton).Click();
+
+ ConfirmMessageBox();
+
+ Assert.AreEqual(jobsCount, jobsGrid.Items.Count);
+
+ Kill();
+ }
+ }
+}