public void ThenICheckThatBatchesWithStatusHadSamlesOnlyWithTestOrOnlyWith(string status, string testName1, string testName2)
        {
            // проверяем, что в каждом бэтче только один тест
            BDMainPage bDMain = new BDMainPage();

            bDMain.OpenBatches();
            IsTrue(bDMain.AssertOpenBatches(), "Что-то пошло не так. не найден заголовок Бэтчи");
            BDBatchesPage bDBatches = new BDBatchesPage();

            bDBatches.WaitSearchButtonClickability();
            // проходим по всем бэтчам в статусе Собран и проверяем, что внутри есть только один из тестов
            int counter = 1;

            foreach (Object i in bDBatches.ListOfBatchesWithThisStatus(status))
            {
                bDBatches.OpenContentOfBatchForAnyStatus(status, counter);
                CommonSteps common = new CommonSteps();
                SecondTab = common.ThenTheTabWithTitleShouldBeOpened("BatchDropper");
                BDContentOfBatchPage bDContent = new BDContentOfBatchPage(SecondTab);
                IsFalse(bDContent.AssertFindSampleWithThisName(testName1)
                        & bDContent.AssertFindSampleWithThisName(testName2), "Что то пошло не так, в бэтче есть тесты с разными программами амплификации");
                Debug.WriteLine($"Проверка бэтча {counter} завершена");
                ++counter;
                bDMain.OpenBatches();
            }
        }
Example #2
0
        public void ThenISeeEmptyCart()
        {
            CommonSteps common = new CommonSteps();

            SecondTab1 = common.ThenTheTabWithTitleShouldBeOpened("Edit");
            CCENCartPage cCENCartPage = new CCENCartPage(SecondTab1);

            IsTrue(cCENCartPage.AssertEmptyCart(), "Корзина не пустая");
        }
        public void ThenIOpenPreorderForEdit()
        {
            PreOrderJournalPage preOrderJournalPage = new PreOrderJournalPage();

            preOrderJournalPage.OpenForEdit();
            System.Threading.Thread.Sleep(2000);
            CommonSteps common = new CommonSteps();

            SecondTab = common.ThenTheTabWithTitleShouldBeOpened("Edit");
            System.Threading.Thread.Sleep(2000);
        }
Example #4
0
        public void ThenTheIndicateOfDelayedNomenclatureWillBeShown()
        {
            CommonSteps common = new CommonSteps();

            SecondTabs = common.ThenTheTabWithTitleShouldBeOpened("Edit");
            CCENNomenclaturesPage nomenclaturesPage = new CCENNomenclaturesPage(SecondTabs);

            nomenclaturesPage.AddSomeNomenctatureToCart("02-002");
            //CCENCartPage cCENCartPage = new CCENCartPage(SecondTab);
            //cCENCartPage.GoToCartTab();
            // IsTrue(cCENCartPage.AssertDelayedText(),"Нет подписи о задержке выполнения номенклатуры");
        }
Example #5
0
        public void ThenIOpenPreorderForEditAndDeleteAllNomenclaturesFromCart()
        {
            PreOrderJournalPage preOrderJournalPage = new PreOrderJournalPage();

            preOrderJournalPage.OpenForEdit();
            System.Threading.Thread.Sleep(2000);
            CommonSteps common = new CommonSteps();

            SecondTab = common.ThenTheTabWithTitleShouldBeOpened("Edit");
            System.Threading.Thread.Sleep(2000);
            CCENCartPage cCENCartPage = new CCENCartPage(SecondTab);

            cCENCartPage.GoToCartTab();
            cCENCartPage.DeleteAllHXIDsFromCart();
            //IsTrue(cCENCartPage.AssertEmptyCart(), "Корзина не пустая");
        }
Example #6
0
        public void ThenIOpenPreorderForEditAndSeeValuesInTheInsuranceFields()
        {
            PreOrderJournalPage preOrderJournalPage = new PreOrderJournalPage();

            preOrderJournalPage.OpenForEdit();
            System.Threading.Thread.Sleep(2000);
            CommonSteps common = new CommonSteps();

            SecondTab = common.ThenTheTabWithTitleShouldBeOpened("Edit");
            System.Threading.Thread.Sleep(2000);
            CCENPersonalDataPage cCENPersonalDataPage = new CCENPersonalDataPage(SecondTab);

            cCENPersonalDataPage.GoToPersonalDataTab();
            System.Threading.Thread.Sleep(1000);
            IsTrue(cCENPersonalDataPage.AssertNumberOfPolicyFieldValueIsNotEmpty(), "Ошибка. Это поле пустое.");
            IsTrue(cCENPersonalDataPage.AssertDispatcherFieldValueIsNotEmpty(), "Ошибка. Это поле пустое.");
            IsTrue(cCENPersonalDataPage.AssertValidityFieldValueIsNotEmpty(), "Ошибка. Это поле пустое.");
        }
        public void WhenIGoToBathesPageICheckThatTheTabletConsistOfSamplesAndBatchHasStatus(int countSamples, string batchStatus)
        {
            BDMainPage bDMain = new BDMainPage();

            bDMain.OpenBatches();
            IsTrue(bDMain.AssertOpenBatches(), "Что-то пошло не так. не найден заголовок Бэтчи");
            //Проверить, что бэтч в статусе Собран
            MSDatabaseConnector _msBDConnector = new MSDatabaseConnector(Config.MSDbBatchDropperStab);
            string        command   = $@"Select [Id] FROM [BatchDropperStab].[dbo].[Batches] Where Status = 10 and name like 'P-%'";
            var           BatchId   = _msBDConnector.QueryExecutorScalar(command);
            BDBatchesPage bDBatches = new BDBatchesPage();

            if (bDBatches.BatchWithIdAndStatus(BatchId, batchStatus).Exists())
            {
                Debug.WriteLine($"ОК. Бэтч {BatchId} в статусе {batchStatus}");
            }
            else
            {
                throw new NullReferenceException($"Ошибочка вышла! Не найден бэтч '{BatchId}' в статусе '{batchStatus}'");
            }
            //проверить, что в содержимом бэтча под образцы занимают N колитчество лунок
            bDBatches.ClickToShowContentBatchWithIdButton(BatchId);
            CommonSteps common = new CommonSteps();

            SecondTab = common.ThenTheTabWithTitleShouldBeOpened("BatchDropper");
            BDContentOfBatchPage bDContent = new BDContentOfBatchPage(SecondTab);
            int countSamplesInBatch        = bDContent.ListOfDrippingSamples.Count;

            System.Threading.Thread.Sleep(2000);
            if (countSamplesInBatch == countSamples)
            {
                Debug.WriteLine($"ОК. Пробами занято {countSamples} лунок в бэтче");
            }
            else
            {
                throw new NullReferenceException($"Ошибочка вышла! В бэтче {BatchId} пробами занято {countSamplesInBatch} лунок вместо '{countSamples}'!");
            }
        }
        public void ThenICheckSendCopyResultsInBatchPage()
        {
            BDMainPage bDMainPage = new BDMainPage();

            bDMainPage.OpenBatches();                                                                                  // переходим на страницу Бэтчи
            MSDatabaseConnector _msBDConnector = new MSDatabaseConnector(Config.MSDbBatchDropperStab);
            string command        = $@"Select count ([Id]) FROM [BatchDropperStab].[dbo].[Batches] Where Status = 50"; // считаем количество бэтчей в статусе "Требует валидации"
            var    countOfBatches = _msBDConnector.QueryExecutorScalar(command);
            int    intCount;

            intCount = System.Convert.ToInt32(countOfBatches);

            if (intCount != 0)
            {
                string command1 = $@"SELECT [Id] FROM[BatchDropperStab].[dbo].[Batches] Where Status = 50 Order by ChangedOn desc";
                var    listOfID = _msBDConnector.QueryExecutor(command1);

                foreach (string id in listOfID) // Если подходящих бэтчей несколько, берём каждый
                {
                    // Кликаем на галку проверки на странице бэтчей
                    BDBatchesPage bDBatchesPage = new BDBatchesPage();
                    CommonSteps   commons       = new CommonSteps();
                    commons.RefreshPage();
                    IsTrue(bDBatchesPage.AssertContentOfBatchButton(), "Не найдена кнопка для открытия содержимого первого бэтча со статусом Требует валидации");
                    bDBatchesPage.OpenContentOfFirstNeedValidateTest();

                    SecondTab = commons.ThenTheTabWithTitleShouldBeOpened("BatchDropper");

                    BDBatchesPage bDBatchesPageNew = new BDBatchesPage(SecondTab);
                    bDBatchesPageNew.ClickIconResultsWasChecked();
                    IsTrue(bDBatchesPageNew.AssertDialogWindowConfirmIsOpen(), "Не открылось диалоговое окно подтверждения действия Результаты проверены");
                    bDBatchesPageNew.ClickConfirmButtonResultsWasChecked();

                    // отпраавляем результат
                    bDMainPage.OpenBatches();
                    commons.RefreshPage();

                    bDBatchesPage.ClickIconResultsReadyToSend();
                    IsTrue(bDBatchesPage.AssertDialogWindowReadyToSendIsOpen(), "Не открылось диалоговое окно подтверждения действия Экспорт в LW");
                    bDBatchesPage.ClickConfirmReadyToSendButton();
                    IsTrue(bDBatchesPage.AssertSucceedMessage(), "Сообщение об успехе не появилось");

                    // копируем файл с подтвержденным результатом в LabWare
                    var      batchNeedsCopy = System.Convert.ToInt32(id);
                    string[] getFile        = Directory.GetFiles(@"\\\\tst10-web.medlinx.corp\\BatchDropper\\LW_Stab\\", $"*{batchNeedsCopy}.csv");
                    string   fileName       = Path.GetFileName(getFile[0]);
                    System.Diagnostics.Debug.WriteLine(fileName);

                    File.Copy(getFile[0], $"\\\\tst10-lwapp.medlinx.corp\\LW-LIMS-V6\\LW-LIMS_KULIKOV-A\\{fileName}");

                    // проверяем, что файл скопировался
                    string[] checkFile = Directory.GetFiles(@"\\\\tst10-lwapp.medlinx.corp\\LW-LIMS-V6\\LW-LIMS_KULIKOV-A\\", $"*{batchNeedsCopy}.csv");
                    string   checkName = Path.GetFileName(checkFile[0]);
                    if (fileName == checkName)
                    {
                        System.Diagnostics.Debug.WriteLine("Результаты для бэтча " + batchNeedsCopy + " выгружены в LabWare");
                    }
                    else
                    {
                        System.Diagnostics.Debug.WriteLine("Что то пошло не так. Результаты бэтча " + batchNeedsCopy + " не удалось выгрузить в LabWare");
                    }
                    System.Threading.Thread.Sleep(4000);
                }// Этот блок будет воспроизведен для всех подходящих по статусу бэтчей
            }
            else
            {
                throw new NullReferenceException("Ошибочка вышла! В базе не найдено бэтчей, требующих проверки результатов");
            }
        }
        public void WhenICreateTestWithParametersFromTheTable(Table table)
        {
            var BDTestInstance = table.CreateInstance <Models.BDTest>();
            //  BDTestInstance.Subgroups = table.CreateInstance<List<String>>();
            //  var result = BDTestInstance.GetSubrgoups;

            var resultListOfSubgroups  = BDTestInstance.GetList(f => f.Subgroups);
            var resultListOfReagentsOT = BDTestInstance.GetList(f => f.ReagentsOT);
            var resultOfReagents       = BDTestInstance.GetList(f => f.CellReagents);
            var resultOfStandarts      = BDTestInstance.GetList(f => f.CellStandarts);

            BDMainPage BDMain = new BDMainPage();

            BDMain.OpenDictionaries();
            IsTrue(BDMain.AssertOpenDictTest(), "Не найден заголовок на странице Тесты");

            BDDictTestPage BDDictTest = new BDDictTestPage();

            BDDictTest.ClickAddTestBtn();

            CommonSteps commons = new CommonSteps();

            SecondTab = commons.ThenTheTabWithTitleShouldBeOpened("BatchDropper");
            BDNewTestPage BDNewTest = new BDNewTestPage(SecondTab);

            BDNewTest.SetNameOfProgAmpWithArg(BDTestInstance.AmpProgram); // Заполнение программы амплификации

            BDNewTest.SetNameOfTestWithArg(BDTestInstance.Name);          // Заполнение имени теста
            System.Threading.Thread.Sleep(200);

            foreach (string sg in resultListOfSubgroups)
            {
                BDNewTest.SetNameOfSubgroup(sg);
            }                                                                              // Заполнение подгруппы Выделения

            if (BDTestInstance.Volume != 0)
            {
                BDNewTest.SetVolumeOfTube(BDTestInstance.Volume);
            }                                                                                     // Заполнение объема пробирки
            else
            {
                throw new InvalidCastException("Объем пробирки не может быть нулевым. Измените значение в файле сценария");
            }


            if (BDTestInstance.IsDNA == "true")
            {
                BDNewTest.SetCheckboxTubeIsolationForDNK();
            }                                                                                 // Чекбокс ДНК
            else if (BDTestInstance.IsDNA == "false")
            {
            }
            else
            {
                throw new ArgumentOutOfRangeException("Значение агрумента должно быть строго true либо false. Измените значение в файле сценария");
            }

            if (BDTestInstance.IsWAX == "true")
            {
                BDNewTest.SetCheckboxHasWax();
            }                                                                    // Чекбокс ВОСК
            else if (BDTestInstance.IsWAX == "false")
            {
            }
            else
            {
                throw new ArgumentOutOfRangeException("Значение агрумента должно быть строго true либо false. Измените значение в файле сценария");
            }

            if (BDTestInstance.IsActive == "false")
            {
                BDNewTest.SetCheckboxIsActive();
            }                                                                          // Чекбокс Активен
            else if (BDTestInstance.IsActive == "true")
            {
            }
            else
            {
                throw new ArgumentOutOfRangeException("Значение агрумента должно быть строго true либо false. Измените значение в файле сценария");
            }

            if (BDTestInstance.Doubles != 0)
            {
                BDNewTest.SetCountOfDoubles(BDTestInstance.Doubles);
            }                                                                                       // Дубли
            else
            {
                throw new NullReferenceException("Количество дублей не может быть нулевым. Измените параметр в файле сценария");
            }

            if (resultListOfReagentsOT.First() != "")
            {
                foreach (string r in resultListOfReagentsOT)
                {
                    BDNewTest.SetReagentsOT(r);
                }                                                                       // Заполнение Реагентов ОТ.
            }

            //_________________________________________ЛУНКИ________________________________________________________________

            int count = BDTestInstance.CellsCount; // Получение указанного количества лунок для сценария

            if (count == 1)                        // Строго для однолуночного теста
            {
                //Заполняем канал только для первой лунки:
                if (BDTestInstance.Fam == "true")
                {
                    BDNewTest.SetFirstChannelOfOneCell();
                }
                else if (BDTestInstance.Fam == "false")
                {
                }
                else
                {
                    throw new ArgumentOutOfRangeException("Значение агрумента fam должно быть строго true либо false. Измените значение в файле сценария");
                }
                if (BDTestInstance.Hex == "true")
                {
                    BDNewTest.SetSecondChannelOfOneCell();
                }
                else if (BDTestInstance.Hex == "false")
                {
                }
                else
                {
                    throw new ArgumentOutOfRangeException("Значение агрумента hex должно быть строго true либо false. Измените значение в файле сценария");
                }
                if (BDTestInstance.Rox == "true")
                {
                    BDNewTest.SetThirdChannelOfOneCell();
                }
                else if (BDTestInstance.Rox == "false")
                {
                }
                else
                {
                    throw new ArgumentOutOfRangeException("Значение агрумента rox должно быть строго true либо false. Измените значение в файле сценария");
                }

                BDNewTest.SetNameOfFirstCell();                         // Заполняем имя только для первой лунки

                BDNewTest.SetControlOption(BDTestInstance.CellControl); // Заполняем луночный контроль первой лунки
                System.Threading.Thread.Sleep(1000);
                if (resultOfReagents.First() != "")
                {
                    foreach (string r in resultOfReagents)
                    {
                        BDNewTest.SetReagentOption(r); System.Threading.Thread.Sleep(900);
                    }                                                                                                             // Заполняем реагенты первой лунки
                }
                if (resultOfStandarts.First() != "")
                {
                    foreach (string j in resultOfStandarts)
                    {
                        BDNewTest.SetStandartOption(j);
                    }                           //Заполняем страндартs для первой лунки
                }
                BDNewTest.SaveTest();           // Сохраняем тест
            }
            else if (count > 1 && count <= 20)  // Если количество лунок в тесте не равно 1
            {
                for (int i = 1; i < count; i++) // Кликаем на кнопку добавления лунки нужное количество раз
                {
                    BDNewTest.ClickTheAddCellBtn();
                    System.Threading.Thread.Sleep(100);
                }

                for (int j = 0; j < count; j++)      // Заполнение нужного количества лунок значениями
                {
                    BDNewTest.SetNameForSomeCell(j); //Заполнение имени каждой лунки теста
                    if (BDTestInstance.CellControl != "")
                    {
                        BDNewTest.SetControlOfSomeCell(j, BDTestInstance.CellControl);
                    }                                                                // Заполнение луночного контроля для лунок
                    else
                    {
                    }

                    if (BDTestInstance.Fam == "true")
                    {
                        BDNewTest.SetFirstChannelOfSomeCell(j);
                    }
                    else if (BDTestInstance.Fam == "false")
                    {
                    }
                    else
                    {
                        throw new ArgumentOutOfRangeException("Значение агрумента fam должно быть строго true либо false. Измените значение в файле сценария");
                    }
                    if (BDTestInstance.Hex == "true")
                    {
                        BDNewTest.SetSecondChannelOfSomeCell(j);
                    }
                    else if (BDTestInstance.Hex == "false")
                    {
                    }
                    else
                    {
                        throw new ArgumentOutOfRangeException("Значение агрумента hex должно быть строго true либо false. Измените значение в файле сценария");
                    }
                    if (BDTestInstance.Rox == "true")
                    {
                        BDNewTest.SetThirdChannelOfSomeCell(j);
                    }
                    else if (BDTestInstance.Rox == "false")
                    {
                    }
                    else
                    {
                        throw new ArgumentOutOfRangeException("Значение агрумента rox должно быть строго true либо false. Измените значение в файле сценария");
                    }
                    System.Threading.Thread.Sleep(1100);
                }

                for (int k = 0; k <= count - 1; k++) // Заполнение нужного количества лунок значениями
                {
                    if (resultOfStandarts.First() != "")
                    {
                        foreach (string st in resultOfStandarts)

                        {
                            BDNewTest.SetStandartOfSomeCell(k, st);
                        }
                    }
                }
                for (int p = 1; p <= count; p++) // Заполнение нужного количества лунок значениями
                {
                    foreach (string r in resultOfReagents)
                    {
                        BDNewTest.SetReagentOfSomeCell(p, r);
                    }
                }

                BDNewTest.SaveTest();
            }
            else
            {
                throw new ArgumentOutOfRangeException("Давайте не будем создавать более 20-ти лунок в тесте.");
            }



            System.Threading.Thread.Sleep(2000);
        }