diff options
Diffstat (limited to 'Software/Visual_Studio/Tango.UnitTesting/MachineStudio')
| -rw-r--r-- | Software/Visual_Studio/Tango.UnitTesting/MachineStudio/MachineStudio_TST.cs | 147 |
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(); + } + } +} |
