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(); } }
public void ThenICheckCountOfBatches() { BDMainPage bDMainPage = new BDMainPage(); bDMainPage.OpenBatches(); IsTrue(bDMainPage.AssertOpenBatches(), "Не найден заголовок на странице"); BDBatchesPage bDBatchesPage = new BDBatchesPage(); IsTrue(bDBatchesPage.TheTableIsEmpty(), "В таблице есть бэтчи"); }
public void ThenICheckThatChild_BatchWasCreated() { 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 = 31 and name like 'C-%'"; var BatchId = _msBDConnector.QueryExecutorScalar(command); BDBatchesPage bDBatches = new BDBatchesPage(); IsTrue(bDBatches.AssertChildBatch(BatchId), "Ошибка! Дочерний бэтч не создан!"); }
public void ThenGoToTheBathesPageToCheckForThePresenceOfBathesInTheStatus(int p0, string p1) { // проверяем, что сформировано 3 бэтча в статусе Сформирован BDMainPage bDMain = new BDMainPage(); bDMain.OpenBatches(); IsTrue(bDMain.AssertOpenBatches(), "Что-то пошло не так. не найден заголовок Бэтчи"); BDBatchesPage bDBatches = new BDBatchesPage(); bDBatches.WaitSearchButtonClickability(); int countOfListOfBatchesWithThisStatus = bDBatches.ListOfBatchesWithThisStatus(p1).Count; if (countOfListOfBatchesWithThisStatus == p0) { Debug.WriteLine($"ОК. На странице Бэтчи отображаются {p0} бэтчей в статусе {p1}"); } else { Debug.WriteLine($"Что-то пошло не так! Выведено {countOfListOfBatchesWithThisStatus} в статусе {p1}. Должно быть {p0}"); } }
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 ThenIGoToTheBatchesPageToCheckThatFromLocationIs(string location, string condition) { BDMainPage bDMain = new BDMainPage(); bDMain.OpenBatches(); IsTrue(bDMain.AssertOpenBatches(), "Что-то пошло не так. не найден заголовок Бэтчи"); //проверить, что отображается бэтч только из своей локации MSDatabaseConnector _msBDConnector = new MSDatabaseConnector(Config.MSDbBatchDropperStab); string command = $@"use BatchDropperStab SELECT TOP (1) b.id FROM batches b with (nolock) inner join Locations l on l.id=b.LocationId WHERE l.name = '{location}'"; var BatchId = _msBDConnector.QueryExecutorScalar(command); BDBatchesPage bDBatches = new BDBatchesPage(); if (condition == "exists") { IsTrue(bDBatches.AssertBatchWithId(BatchId), $"Что то пошло не так - не находит бэтч {BatchId} в локации {location}"); } else { IsFalse(bDBatches.AssertBatchWithId(BatchId), $"Что то пошло не так - найден бэтч {BatchId} в локации {location}"); } }
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 ThenIGetResultFileByAmplificatorUtilite() { BDMainPage bDMainPage = new BDMainPage(); bDMainPage.OpenBatches(); // переходим на страницу Бэтчи MSDatabaseConnector _msBDConnector = new MSDatabaseConnector(Config.MSDbBatchDropperStab); string command = $@"Select count ([Id]) FROM [BatchDropperStab].[dbo].[Batches] Where Status = 40"; // считаем количество бэтчей в статусе "Отправлен на прибор" 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 = 40 Order by ChangedOn desc"; var listOfID = _msBDConnector.QueryExecutor(command1); foreach (string id in listOfID) // Если подходящих бэтчей несколько, берём каждый { int intId = System.Convert.ToInt32(id); //Переводим id бэтча в числовое значение: string fullId = ""; // Определяем строку полного номера бэтча: if (intId >= 1 && intId <= 999999) // Присваиваем полный номер бэтча, в зависимости от его id: { fullId = intId.ToString().PadLeft(6, '0'); // переводим номер бэтча в строку и добавляем 0 впереди пока длина строки не станет равна 6 } else { throw new NullReferenceException("Ошибочка вышла! Значение id бэтча не может быть более 999999 или менее 1. Ваше значение: " + intId); } System.Diagnostics.Debug.WriteLine("Окончательный номер бэтча: " + fullId); // Копируем из папки заданий бэтчдроппера в утилитную папку заданий: File.Copy($"\\\\tst10-web.medlinx.corp\\AmplificatorStab\\Task\\{fullId}.xml", $"D:\\UtilityAmplificator\\tasks\\{fullId}.xml"); // Запускаем утилиту у себя на компе: Process emulationProc = new Process(); emulationProc = Process.Start("D:\\UtilityAmplificator\\Console.lnk"); System.Threading.Thread.Sleep(1000); SendKeys.SendWait("{Enter}"); System.Threading.Thread.Sleep(1000); // Копируем файл с результатами из утилитной папки в папку результатов бэтчдроппера: File.Copy($"D:\\UtilityAmplificator\\results\\{fullId}_result.xml", $"\\\\tst10-web.medlinx.corp\\AmplificatorStab\\Result\\{fullId}_result.xml"); // выносим номер бетча строкой без нулей var actualBatchId = intId.ToString(); // проверяем, что актуальный бэтч перешел статус "Требует валидации" за 10 секунд (?) BDBatchesPage bDBatchesPage = new BDBatchesPage(); IsFalse(bDBatchesPage.IdBatchNeedsValidation(actualBatchId).Exists(new Options { Timeout = System.TimeSpan.FromSeconds(10) }), "Внимание! Бэтч не сменил статус!"); // берем бэтч string command2 = $@"SELECT top 1 [Id] FROM [BatchDropperStab].[dbo].[Batches] Where Status = 50 order by ChangedOn desc"; var batchNeedValidation = _msBDConnector.QueryExecutorScalar(command2); if (batchNeedValidation == actualBatchId) { System.Diagnostics.Debug.WriteLine("Результаты для бэтча " + id + " выгружены в бэтчдроппер"); } else { throw new NullReferenceException("Ошибочка вышла! Бэтч не перешел в статус Требует валидации. Id бэтча: " + intId); } } } }