예제 #1
0
        private bool WaitForMode(FiMode mode, TimeSpan timeout)
        {
            logger.LogInfo($"Waiting for mode {mode}");

            if (WaitHelpers.WaitFor(() => GetMode().Equals(mode.ToString()), timeout))
            {
                logger.LogInfo($"Changed to {mode} in time");
                return(true);
            }

            return(false);
        }
예제 #2
0
        public void CloseDown()
        {
            ClickRadioButton(MeatMaster2UiItems.CareViewButton, MainWindow);
            Button closeButton = MainWindow.Get <Button>(SearchCriteria.ByText(MeatMaster2UiItems.CloseDownButton));

            WaitHelpers.WaitForEnabled(closeButton, TimeSpan.FromSeconds(30));

            closeButton.Click();

            WaitHelpers.WaitForDialog(MainWindow, MeatMaster2UiItems.MessageBoxPopup, TimeSpan.FromMinutes(2));

            MainWindow.ModalWindow(MeatMaster2UiItems.MessageBoxPopup).Get <Button>(SearchCriteria.ByText(MeatMaster2UiItems.PopupLeftButton)).Click();
        }
예제 #3
0
        /// <summary>
        /// Envoked to click the start stop button in any Nova
        /// </summary>
        public void ClickStartStopButton()
        {
            logger.LogInfo("Clicking start/stop button");

            Button startStopButton = MainWindow.Get <Button>(StartStopButton);

            logger.LogInfo("Button found {0}", startStopButton.Name);

            if (WaitHelpers.WaitForEnabled(startStopButton, TimeSpan.FromMinutes(5)))
            {
                startStopButton.Click();
            }
        }
예제 #4
0
        public void WaitForServiceToStart(string serviceName, int timeOutMinutes)
        {
            logger.LogInfo("Waiting for {0} service to start.", serviceName);

              if (!WaitHelpers.WaitFor(() => ServiceIsRunning(serviceName), TimeSpan.FromMinutes(timeOutMinutes), TimeSpan.FromSeconds(30)))
              {
            logger.LogError("{0} Service did not start in time.", serviceName);
              }
              else
              {
            logger.LogInfo("{0} Service started.", serviceName);
              }
        }
예제 #5
0
 /// <summary>
 /// Waits for the reference splash to disapear in MM2 UI
 /// </summary>
 public void WaitForReference()
 {
     try
     {
         Label referenceLabel = MainWindow.Get <Label>(SearchCriteria.ByText(Properties.Resources.MeatMasterII_ReferenceLabelName));
         WaitHelpers.WaitForVisible(referenceLabel, TimeSpan.FromSeconds(60));
         WaitHelpers.WaitFor(() => !referenceLabel.Visible, TimeSpan.FromMinutes(10), TimeSpan.FromSeconds(30));
     }
     catch (Exception e)
     {
         logger.LogError($"WaitForReference failed with exception {e.Message} inner: {e.InnerException}");
         throw;
     }
 }
예제 #6
0
        public void ClickRadioButton(SearchCriteria criteria, Window window)
        {
            logger.LogInfo($"Searching for radiobutton with criteria {criteria}");

            RadioButton radioButton = window.Get <RadioButton>(criteria);

            logger.LogInfo($"Button found {radioButton.Name} in {window.Title}");

            if (WaitHelpers.WaitForEnabled(radioButton, TimeSpan.FromMinutes(5)))
            {
                logger.LogInfo($"Clicking {radioButton.Name}");
                radioButton.Click();
            }
        }
예제 #7
0
        public void StartAndWaitForCheckSample(int minutesToWait = 5)
        {
            Window startCheckSampleDialog = MainWindow.ModalWindow(MeatMaster2UiItems.MessageBoxPopup);

            Button startCsButton =
                startCheckSampleDialog.Get <Button>(SearchCriteria.ByText(MeatMaster2UiItems.PopupRightButton));

            startCsButton.Click();

            WaitHelpers.WaitFor(CheckSampleIsDone, TimeSpan.FromMinutes(minutesToWait));

            Window removeCsWindow = MainWindow.ModalWindow(MeatMaster2UiItems.MessageBoxPopup);

            removeCsWindow.Get <Button>(SearchCriteria.ByText(MeatMaster2UiItems.PopupLeftButton)).Click();
        }
예제 #8
0
        public void ClickApplicationswitchButton()
        {
            Button appSwitchButton =
                MainWindow.Get <Button>(SearchCriteria.ByText(MeatMaster2UiItems.MenuBarApplicationSwitchButton));

            if (WaitHelpers.WaitForEnabled(appSwitchButton, TimeSpan.FromSeconds(60)))
            {
                logger.LogInfo("Application switch button is enabled.");
                appSwitchButton.Click();
                WaitForManta();
            }
            else
            {
                logger.LogError("Application switch was not enabled.");
            }
        }
예제 #9
0
        /// <summary>
        /// Envoked to close the current batch in Manta
        /// </summary>
        public void CloseBatch()
        {
            ClickButton(SearchCriteria.ByText(UiItems.MantaLolipopButtonName));

            while (!WaitHelpers.WaitFor(() => MainWindow.ModalWindows().Any(), TimeSpan.FromMinutes(2)))
            {
                ClickButton(SearchCriteria.ByText(UiItems.MantaLolipopButtonName));
            }

            //WaitHelpers.WaitForDialog(MainWindow, "", TimeSpan.FromSeconds(60));
            Window batchControlDialog = MainWindow.ModalWindows()[0];

            ClickButton(SearchCriteria.ByText("BatchDialogCloseBatchButton"), batchControlDialog);

            Thread.Sleep(TimeSpan.FromSeconds(10));
        }
예제 #10
0
        public void HandlePopup(string answer)
        {
            WaitHelpers.WaitForDialog(MainWindow, UiItems.MessageBoxPopup, TimeSpan.FromSeconds(30));
            Window messagePopup = MainWindow.ModalWindow(UiItems.MessageBoxPopup);

            answer = answer.ToLower();

            if (answer == "yes")
            {
                ClickButton(UiItems.MessageBoxPopupYesButton, messagePopup);
                return;
            }

            ClickButton(UiItems.MessageBoxPopupNoButton, messagePopup);

            WaitHelpers.WaitFor(() => messagePopup.IsClosed, TimeSpan.FromSeconds(30));
        }
예제 #11
0
        /// <summary>
        /// Selects a product in any Nova
        /// </summary>
        /// <param name="productName"></param>
        public void SelectProduct(string productName)
        {
            ClickSelectProduct();

            if (WaitHelpers.WaitForDialog(MainWindow, SelectProductsDialogName, TimeSpan.FromSeconds(30)))
            {
                Window selectProductDialog = MainWindow.ModalWindow(SelectProductsDialogName);

                if (SelectProductDialogIsUpdated) //True from 7.0
                {
                    ClickButton(SearchCriteria.ByText(productName), selectProductDialog);
                }
                else
                {
                    ListBox productList = selectProductDialog.Get <ListBox>(ProductList);
                    SelectValueFromList(productName, productList);
                }
            }
        }
예제 #12
0
 public Window GetMainWindow(string processName, string windowName)
 {
     try
     {
         logger.LogInfo("Finding window {0} in {1}", windowName, processName);
         Application novaApp = GetApplication(processName);
         WaitHelpers.WaitFor(() => WindowsForProcess(processName).Contains(windowName), TimeSpan.FromMinutes(30), TimeSpan.FromMinutes(1));
         WaitHelpers.WaitSeconds(10);
         // WaitHelpers.WaitFor(() => novaApp.GetWindows().Count > 0, TimeSpan.FromMinutes(30));
         logger.LogInfo("Window for {0} is found.", novaApp.Name);
         Window window = novaApp.GetWindow(windowName);
         logger.LogInfo("Nova window {0} is found", window.Title);
         return(window);
     }
     catch (Exception e)
     {
         logger.LogError("GetMainWindow failed with exception: {0}. \nInner exception {1}", e.Message,
                         e.InnerException.Message);
         throw;
     }
 }
예제 #13
0
        /// <summary>
        /// Starts instrument diagnostic waits for finish dialog, and clicks OK.
        /// </summary>
        public void HandleInstrumentDiagnostic()
        {
            WaitHelpers.WaitForDialog(MainWindow, Properties.Resources.MeatMasterII_InstrumentStartupDialog, TimeSpan.FromMinutes(5));

            MainWindow.ModalWindow(Properties.Resources.MeatMasterII_InstrumentStartupDialog)
            .Get <Button>(SearchCriteria.ByText(MeatMaster2UiItems.InstrumentStartupStartButton)).Click();

            WaitHelpers.WaitForDialog(MainWindow, MeatMaster2UiItems.InstrumentDiagnosticDialog, TimeSpan.FromSeconds(30));

            Button instrumentDiagnosticOkButton = MainWindow.ModalWindow(MeatMaster2UiItems.InstrumentDiagnosticDialog)
                                                  .Get <Button>(SearchCriteria.ByText(MeatMaster2UiItems.InstrumentDiagnosticOkButton));

            if (WaitHelpers.WaitForVisible(instrumentDiagnosticOkButton, TimeSpan.FromMinutes(60)))
            {
                logger.LogInfo("Button was enabled");
                instrumentDiagnosticOkButton.Click();
            }

            else
            {
                logger.LogInfo("Button was not enabled");
            }
        }
예제 #14
0
        /// <summary>
        /// Closes down Nova
        /// </summary>
        /// <param name="restartWindows">If true, windows will restart during the shutdown, before it is done.</param>
        public void CloseDown(bool restartWindows)
        {
            ClickRadioButton(MeatMaster2UiItems.CareViewButton, MainWindow);
            Button closeButton = MainWindow.Get <Button>(SearchCriteria.ByText(MeatMaster2UiItems.CloseDownButton));

            WaitHelpers.WaitForEnabled(closeButton, TimeSpan.FromSeconds(30));

            closeButton.Click();

            WaitHelpers.WaitForDialog(MainWindow, MeatMaster2UiItems.MessageBoxPopup, TimeSpan.FromMinutes(2));

            MainWindow.ModalWindow(MeatMaster2UiItems.MessageBoxPopup)
            .Get <Button>(SearchCriteria.ByText(MeatMaster2UiItems.PopupLeftButton))
            .Click();

            if (restartWindows)
            {
                applicationHelpers.RestartWindows();
            }

            WaitHelpers.WaitFor(() => !applicationHelpers.ProcessIsRunning(MeatMaster2UiItems.Mm2ProcessName),
                                TimeSpan.FromMinutes(20), TimeSpan.FromMinutes(1));
        }
예제 #15
0
        private bool WaitForManta()
        {
            if (!WaitHelpers.WaitFor(
                    () => applicationHelpers.ProcessIsRunning(UiItems.MantaProcessname),
                    TimeSpan.FromSeconds(60)))
            {
                logger.LogError("Manta process did not start in time");
                return(false);
            }

            logger.LogInfo("Manta process started.");

            if (
                !WaitHelpers.WaitFor(
                    () => applicationHelpers.WindowIsVisible(UiItems.MantaProcessname, UiItems.MantaWindowtitle),
                    TimeSpan.FromSeconds(60)))
            {
                logger.LogError("Manta window did not show within 60 secs.");
                return(false);
            }

            logger.LogInfo("Manta started in time.");
            return(true);
        }
예제 #16
0
        /// <summary>
        /// Starts the instrument diagnostic, and cancels after waitTime
        /// </summary>
        /// <param name="waitTime">Time to let the test run before canceling</param>
        public void CancelStartup(TimeSpan waitTime)
        {
            WaitHelpers.WaitForDialog(MainWindow, Properties.Resources.MeatMasterII_InstrumentStartupDialog, TimeSpan.FromMinutes(5));

            Window instrumentDiagnosticDialog = MainWindow.ModalWindow(Properties.Resources.MeatMasterII_InstrumentStartupDialog);

            instrumentDiagnosticDialog.Get <Button>(SearchCriteria.ByText(MeatMaster2UiItems.InstrumentStartupStartButton))
            .Click();

            WaitHelpers.WaitForDialog(MainWindow, MeatMaster2UiItems.InstrumentDiagnosticDialog, TimeSpan.FromSeconds(30));

            Button instrumentDiagnosticCancelButton = MainWindow.ModalWindow(MeatMaster2UiItems.InstrumentDiagnosticDialog)
                                                      .Get <Button>(SearchCriteria.ByText(MeatMaster2UiItems.InstrumentDiagnosticCancelButton));

            if (WaitHelpers.WaitForEnabled(instrumentDiagnosticCancelButton, TimeSpan.FromSeconds(60)))
            {
                Thread.Sleep(waitTime);
                instrumentDiagnosticCancelButton.Click();
                HandlePopup("yes");
            }
            WaitHelpers.WaitForDialog(MainWindow, MeatMaster2UiItems.InstrumentDiagnosticDialog, TimeSpan.FromSeconds(20));

            Button instrumentDiagnosticOkButton = MainWindow.ModalWindow(MeatMaster2UiItems.InstrumentDiagnosticDialog)
                                                  .Get <Button>(SearchCriteria.ByText(MeatMaster2UiItems.InstrumentDiagnosticOkButton));

            if (WaitHelpers.WaitForVisible(instrumentDiagnosticOkButton, TimeSpan.FromSeconds(60)))
            {
                logger.LogInfo("Button was enabled");
                instrumentDiagnosticOkButton.Click();
            }

            else
            {
                logger.LogInfo("Button was not enabled");
            }
        }
예제 #17
0
        public void GetDiagnosticsResult()
        {
            WaitHelpers.WaitForDialog(MainWindow, MeatMaster2UiItems.InstrumentDiagnosticDialog, TimeSpan.FromSeconds(30));
            Button instrumentDiagnosticOkButton = MainWindow.ModalWindow(MeatMaster2UiItems.InstrumentDiagnosticDialog)
                                                  .Get <Button>(SearchCriteria.ByText(MeatMaster2UiItems.InstrumentDiagnosticOkButton));
            Button instrumentDiagnosticRepeatButton = MainWindow.ModalWindow(MeatMaster2UiItems.InstrumentDiagnosticDialog)
                                                      .Get <Button>(SearchCriteria.ByText(MeatMaster2UiItems.InstrumentDiagnosticRepeatButton));

            if (WaitHelpers.WaitForVisible(instrumentDiagnosticOkButton, TimeSpan.FromMinutes(60)))
            {
                if (instrumentDiagnosticRepeatButton.Visible)
                {
                    instrumentDiagnosticOkButton.Click();
                    CollectLogs();
                }
                logger.LogInfo("diagnostics passed.");
                instrumentDiagnosticOkButton.Click();
            }

            else
            {
                logger.LogInfo("Button was not enabled");
            }
        }