public void TestFindDocumentWithClusteringKeyPart() { var documents = CqlDocumentsForTests.GetCqlDocumentBindingMetaEntries(serializer); var firstPartnerPartyId = documents[0].FirstPartnerPartyId; var secondPartnerPartyId = documents[0].SecondPartnerPartyId; using (var context = new CqlDbContext()) context.InsertDocuments(documents); using var browser = new BrowserForTests(); var showTableEntriesPage = browser.SwitchTo <BusinessObjectTablePage>("DocumentBindingsMeta"); showTableEntriesPage.OpenFilter.Click(); showTableEntriesPage.FilterModal.GetFilter("BindingType").EnumSelect.SelectValueByText("ByPriceList"); showTableEntriesPage.FilterModal.GetFilter("FirstPartnerPartyId").Input.ClearAndInputText(firstPartnerPartyId); showTableEntriesPage.FilterModal.Apply.Click(); showTableEntriesPage.FilterModal.GetFilter("SecondPartnerPartyId").Input.WaitIncorrect(); showTableEntriesPage.FilterModal.GetFilter("DocumentNumber").Input.WaitIncorrect(); showTableEntriesPage.FilterModal.GetFilter("DocumentDate").DateTimeInTicks.WaitIncorrect(); showTableEntriesPage.FilterModal.GetFilter("DocumentTime").DateTimeInTicks.WaitIncorrect(); showTableEntriesPage.FilterModal.GetFilter("FirstPartnerPartyId").Input.WaitCorrect(); showTableEntriesPage.FilterModal.GetFilter("SecondPartnerPartyId").Input.ClearAndInputText(secondPartnerPartyId); showTableEntriesPage.FilterModal.GetFilter("DocumentNumber").Input.ClearAndInputText("0"); showTableEntriesPage.FilterModal.GetFilter("DocumentDate").Date.ClearAndInputText("10.10.2000"); showTableEntriesPage.FilterModal.GetFilter("DocumentTime").DateTimeInTicks.ClearAndInputText(new DateTime(2020, 10, 10, 13, 12, 11, DateTimeKind.Utc).Ticks.ToString()); var documentType = documents[0].DocumentType; var documentCirculationId = documents[0].DocumentCirculationId.ToString(); showTableEntriesPage.FilterModal.GetFilter("DocumentType").Input.ClearAndInputText(documentType); showTableEntriesPage.FilterModal.GetFilter("DocumentCirculationId").Input.ClearAndInputText(documentCirculationId); showTableEntriesPage.FilterModal.Apply.Click(); showTableEntriesPage.BusinessObjectItems.WaitCount(1); showTableEntriesPage.BusinessObjectItems[0].FindColumn("DocumentCirculationId").WaitText(documentCirculationId); showTableEntriesPage.OpenFilter.Click(); showTableEntriesPage.FilterModal.GetFilter("DocumentType").Input.Clear(); showTableEntriesPage.FilterModal.GetFilter("DocumentCirculationId").Input.Clear(); showTableEntriesPage.FilterModal.Apply.Click(); showTableEntriesPage.BusinessObjectItems.WaitCount(10); showTableEntriesPage.BusinessObjectItems.Wait(row => row.FindColumn("DocumentCirculationId").Text).That(Is.EquivalentTo(documents.Select(x => x.DocumentCirculationId.ToString()))); showTableEntriesPage.OpenFilter.Click(); showTableEntriesPage.FilterModal.GetFilter("DocumentType").Input.ClearAndInputText(documentType); showTableEntriesPage.FilterModal.Apply.Click(); showTableEntriesPage.BusinessObjectItems.WaitCount(5); showTableEntriesPage.BusinessObjectItems.Wait(row => row.FindColumn("DocumentType").Text).That(Is.All.EqualTo("Invoic")); showTableEntriesPage.OpenFilter.Click(); showTableEntriesPage.FilterModal.GetFilter("DocumentType").OperatorSelect.SelectValueByText(">"); showTableEntriesPage.FilterModal.Apply.Click(); showTableEntriesPage.BusinessObjectItems.WaitCount(5); showTableEntriesPage.BusinessObjectItems.Wait(row => row.FindColumn("DocumentType").Text).That(Is.All.EqualTo("Orders")); }
public void TestTwoPages() { var scopeId = Guid.NewGuid().ToString(); CreateFtpUsers(21, scopeId); using var browser = new BrowserForTests(); var businessObjectsPage = browser.SwitchTo <BusinessObjectsPage>(); businessObjectsPage.FilterInput.ClearAndInputText("FtpUser"); var ftpUsersLink = businessObjectsPage.ObjectGroups[0].ObjectsList.GetItemWithText(x => x.ObjectLink.Text, "FtpUser"); var ftpUsersPage = ftpUsersLink.ObjectLink.ClickAndGoTo <BusinessObjectTablePage>(); ftpUsersPage.OpenFilter.Click(); ftpUsersPage.FilterModal.GetFilter("Login").Input.ClearAndInputText(scopeId); ftpUsersPage.FilterModal.Apply.Click(); ftpUsersPage = browser.RefreshUntil(ftpUsersPage, page => page.ItemsCountInfo.Text.Get().Contains("Всего 21")); ftpUsersPage.ItemsCountInfo.WaitTextContains("Записи с 0 по 20", "Всего 21"); ftpUsersPage.BusinessObjectItems.WaitCount(20); ftpUsersPage.Paging.PagesCount.Wait().That(Is.EqualTo(2)); ftpUsersPage.Paging.GoToPage(2); ftpUsersPage.ItemsCountInfo.WaitTextContains("Записи с 20 по 21", "Всего 21"); ftpUsersPage.BusinessObjectItems.WaitCount(1); }
public void TestFiltrationWhenNotFirstPage() { var scopeId = Guid.NewGuid().ToString(); CreateUsers(20, scopeId); var userId = Guid.NewGuid(); CreateUsers(1, scopeId, userId); using var browser = new BrowserForTests(); var userBusinessObjectPage = browser.SwitchTo <BusinessObjectTablePage>("UsersTable"); userBusinessObjectPage.OpenFilter.Click(); userBusinessObjectPage.FilterModal.ScopeId.ClearAndInputText(scopeId); userBusinessObjectPage.FilterModal.Apply.Click(); userBusinessObjectPage.Paging[1].Click(); userBusinessObjectPage.BusinessObjectItems.WaitCount(1); userBusinessObjectPage.OpenFilter.Click(); userBusinessObjectPage.FilterModal.Id.ClearAndInputText(userId.ToString()); userBusinessObjectPage.FilterModal.Apply.Click(); userBusinessObjectPage.ItemsCountInfo.WaitText("Записи с 0 по 1\r\n|\r\nВсего 1"); userBusinessObjectPage.BusinessObjectItems.WaitCount(1); }
public void TestObjectKeysValidation() { var printingInfo = CqlDocumentsForTests.GetCqlDocumentPrintingInfo(); var printingInfoId = printingInfo.Id.ToString(); using (var context = new CqlDbContext()) context.InsertDocument(printingInfo); using var browser = new BrowserForTests(); var showTableEntriesPage = browser.SwitchTo <BusinessObjectTablePage>("DocumentPrintingInfo"); showTableEntriesPage.OpenFilter.Click(); showTableEntriesPage.FilterModal.Apply.Click(); var searchField = showTableEntriesPage.FilterModal.GetFilter("Id"); searchField.InputValidation.ExpectIsOpenedWithMessage("Поле должно быть заполнено"); searchField.Input.ClearAndInputText(Guid.NewGuid().ToString()); showTableEntriesPage.FilterModal.Apply.Click(); showTableEntriesPage.BusinessObjectItems.WaitAbsence(); showTableEntriesPage.NothingFound.WaitPresence(); showTableEntriesPage.OpenFilter.Click(); searchField = showTableEntriesPage.FilterModal.GetFilter("Id"); searchField.Input.ClearAndInputText(printingInfoId); showTableEntriesPage.FilterModal.Apply.Click(); showTableEntriesPage.BusinessObjectItems.WaitCount(1); showTableEntriesPage.BusinessObjectItems[0].FindColumn("Id").WaitText(printingInfoId); }
public void TestRestrictionsForManyItems() { var totalCount = 100123; var scopeId = GenerateRandomUsersAndAssertCount(totalCount)[0].ScopeId; using var browser = new BrowserForTests(); var businessObjectPage = browser.SwitchTo <BusinessObjectTablePage>("UsersTable"); businessObjectPage.OpenFilter.Click(); businessObjectPage.FilterModal.ScopeId.ClearAndInputText(scopeId); businessObjectPage.FilterModal.Apply.Click(); businessObjectPage.ItemsCountInfo.WaitTextContains("Всего 50000+"); businessObjectPage.DownloadLink.Click(); businessObjectPage.DownloadLimitModal.Header.WaitText("Слишком большой список"); businessObjectPage.DownloadLimitModal.Body.WaitText("Мы умеем выгружать не более 50000 объектов из этой таблицы. Уточните запрос с помощью фильтров, чтобы записей стало меньше."); businessObjectPage.DownloadLimitModal.Cancel.Click(); var adminBusinessObjectPage = browser.LoginAsSuperUser().SwitchTo <BusinessObjectTablePage>("UsersTable"); adminBusinessObjectPage.OpenFilter.Click(); adminBusinessObjectPage.FilterModal.ScopeId.ClearAndInputText(scopeId); adminBusinessObjectPage.FilterModal.Apply.Click(); adminBusinessObjectPage.ItemsCountInfo.WaitTextContains("Всего 100123"); var content = DownloadFile(browser, businessObjectPage); content.Length.Should().Be(100125); }
public void DeleteViaDetailsPageRequiresGodAccess() { var ftpUser = CreateFtpUser(); using var browser = new BrowserForTests(); var detailsPage = browser.SwitchTo <BusinessObjectDetailsPage>("FtpUser", $"Id={ftpUser.Id}"); detailsPage.Delete.IsPresent.Wait().That(Is.False, "Delete link should only be present for gods"); }
public void TestLinkShouldReferToShowTablePage() { using var browser = new BrowserForTests(); var businessObjectsPage = browser.SwitchTo <BusinessObjectsPage>(); var link = businessObjectsPage.FindBusinessObjectLink("CQL Objects", "DocumentPrintingInfo"); var page = link.ClickAndGoTo <BusinessObjectTablePage>(); page.Header.WaitText("DocumentPrintingInfo"); }
public void TestSearchLink() { using var browser = new BrowserForTests(); var businessObjectsPage = browser.SwitchTo <BusinessObjectsPage>(); businessObjectsPage.FilterInput.ClearAndInputText("DocumentPrintingInfo"); businessObjectsPage.ObjectGroups.WaitCount(1); businessObjectsPage.ObjectGroups[0].ObjectsList.WaitCount(1); businessObjectsPage.FindBusinessObjectLink("CQL Objects", "DocumentPrintingInfo").WaitPresence(); }
public void TestValidation() { using var browser = new BrowserForTests(); var businessObjectsPage = browser.SwitchTo <BusinessObjectsPage>(); businessObjectsPage.FilterInput.ClearAndInputText("ApiClientThrift"); businessObjectsPage.ObjectGroups.Wait(x => x.Name.Text).That(Is.EqualTo(new[] { "Business Array Objects" })); businessObjectsPage.ObjectGroups[0].ObjectsList.WaitCount(1); var link = businessObjectsPage.ObjectGroups[0].ObjectsList.GetItemWithText(x => x.Text, "ApiClientThrift"); var searchPage = link.ObjectLink.ClickAndGoTo <BusinessObjectTablePage>(); searchPage.Header.WaitText("ApiClientThrift"); var id = searchPage.FilterModal.GetFilter("Id"); var scopeId = searchPage.FilterModal.GetFilter("ScopeId"); var arrayIndex = searchPage.FilterModal.GetFilter("ArrayIndex"); id.Input.ClearAndInputText("123"); scopeId.Input.ClearAndInputText("123"); searchPage.FilterModal.Apply.Click(); arrayIndex.InputValidation.ExpectIsOpenedWithMessage("Поле должно быть заполнено"); arrayIndex.Input.ClearAndInputText(" "); searchPage.FilterModal.Apply.Click(); arrayIndex.InputValidation.ExpectIsOpenedWithMessage("Поле должно быть заполнено"); arrayIndex.Input.ClearAndInputText("<script>"); searchPage.FilterModal.Apply.Click(); arrayIndex.InputValidation.ExpectIsOpenedWithMessage("Некорректный символ: '<'"); arrayIndex.Input.ClearAndInputText("123"); scopeId.Input.ClearAndInputText(" "); searchPage.FilterModal.Apply.Click(); scopeId.InputValidation.ExpectIsOpenedWithMessage("Поле должно быть заполнено"); scopeId.Input.ClearAndInputText(">##"); searchPage.FilterModal.Apply.Click(); scopeId.InputValidation.ExpectIsOpenedWithMessage("Некорректный символ: '>'"); scopeId.Input.ClearAndInputText("123"); id.Input.Clear(); searchPage.FilterModal.Apply.Click(); id.InputValidation.ExpectIsOpenedWithMessage("Поле должно быть заполнено"); id.Input.ClearAndInputText("&##"); searchPage.FilterModal.Apply.Click(); id.InputValidation.ExpectIsOpenedWithMessage("Некорректный символ: '&'"); }
public void TestSearchIndexedField() { using var browser = new BrowserForTests(); var businessObjects = browser.SwitchTo <BusinessObjectsPage>(); businessObjects.FilterInput.ClearAndInputText("UsersTable"); businessObjects.ObjectGroups.WaitCount(1); var objects = businessObjects.ObjectGroups.GetItemWithText(x => x.Name.Text, "Postgres Objects"); objects.IndexedLabel.WaitPresence(); objects.ObjectsList.WaitCount(1); objects.ObjectsList[0].ObjectLink.WaitText("UsersTable"); }
public void DeleteViaSearchPageRequiresGodAccess() { var ftpUser = CreateFtpUser(); using var browser = new BrowserForTests(); var businessObjectPage = browser.SwitchTo <BusinessObjectTablePage>("FtpUser"); businessObjectPage.OpenFilter.Click(); businessObjectPage.FilterModal.GetFilter("Login").Input.ClearAndInputText(ftpUser.Login); businessObjectPage.FilterModal.Apply.Click(); businessObjectPage = browser.RefreshUntil(businessObjectPage, x => x.BusinessObjectItems.IsPresent.Get()); businessObjectPage.BusinessObjectItems.WaitCount(1); businessObjectPage.BusinessObjectItems[0].Delete.IsPresent.Wait().That(Is.False, "Delete link should only be present for gods"); }
public void TestObjectNotFound() { using var browser = new BrowserForTests(); var searchPage = browser.SwitchTo <BusinessObjectTablePage>("ApiClientThrift"); searchPage.Header.WaitText("ApiClientThrift"); searchPage.FilterModal.GetFilter("Id").Input.ClearAndInputText("123"); searchPage.FilterModal.GetFilter("ScopeId").Input.ClearAndInputText("123"); searchPage.FilterModal.GetFilter("ArrayIndex").Input.ClearAndInputText("123"); searchPage.FilterModal.Apply.Click(); searchPage.NothingFound.WaitPresence(); searchPage.BusinessObjectItems.WaitAbsence(); }
public void TestEmptyList() { using var browser = new BrowserForTests(); var businessObjectPage = browser.SwitchTo <BusinessObjectTablePage>("UsersTable"); businessObjectPage.OpenFilter.Click(); businessObjectPage.FilterModal.ScopeId.ClearAndInputText(Guid.NewGuid().ToString()); businessObjectPage.FilterModal.Apply.Click(); businessObjectPage.ItemsCountInfo.WaitTextContains("Всего 0"); businessObjectPage.NothingFound.WaitPresence(); var content = DownloadFile(browser, businessObjectPage); content.Length.Should().Be(2); }
public void TestRestrictionsFor50000Items() { var scopeId = GenerateRandomUsersAndAssertCount(50000)[0].ScopeId; using var browser = new BrowserForTests(); var businessObjectPage = browser.SwitchTo <BusinessObjectTablePage>("UsersTable"); businessObjectPage.OpenFilter.Click(); businessObjectPage.FilterModal.ScopeId.ClearAndInputText(scopeId); businessObjectPage.FilterModal.Apply.Click(); businessObjectPage.ItemsCountInfo.WaitTextContains("Всего 50000"); var content = DownloadFile(browser, businessObjectPage); content.Length.Should().Be(50002); }
public void TestContentSortedAndSelectColumns() { var users = GenerateRandomUsersAndAssertCount(10); var scopeId = users[0].ScopeId; using var browser = new BrowserForTests(); var businessObjectPage = browser.SwitchTo <BusinessObjectTablePage>("UsersTable"); businessObjectPage.OpenFilter.Click(); businessObjectPage.FilterModal.ScopeId.ClearAndInputText(scopeId); businessObjectPage.FilterModal.Apply.Click(); businessObjectPage.TableHeader.SortByColumn("Header_Id"); var columns = new[] { "Email", "Id", "ScopeId", "LastModificationDateTime" }; businessObjectPage.FieldSettings.Click(); businessObjectPage.ColumnSelector.TypesSelectAll.Click(); foreach (var column in columns) { businessObjectPage.ColumnSelector.ColumnCheckboxes.GetCheckbox(column).Click(); } var content = DownloadFile(browser, businessObjectPage); content.Length.Should().Be(12); var usersById = users.ToDictionary(x => x.Id.ToString(), x => x); var sep = ";"; var headerFields = new[] { "Id", "ScopeId", "LastModificationDateTime", "Email" }; var header = string.Join(sep, headerFields.Select(FormatString)); content[0].Should().Be(header); content[11].Should().BeEmpty(); for (var i = 1; i < 11; i++) { var item = content[i].Split(new[] { sep }, StringSplitOptions.None); var key = item[0].Replace("\"", "").Replace("=", ""); var user = usersById[key]; item[0].Should().Be(FormatString(key)); item[1].Should().Be(FormatString(user.ScopeId)); DateTime.TryParseExact(item[2].Replace("\"", ""), "O", CultureInfo.InvariantCulture, DateTimeStyles.None, out _).Should().BeTrue(); item[3].Should().Be(FormatString(user.Email)); } }
public void TestAllowSort() { using (var context = new EntityFrameworkDbContext()) { var serializer = new Serializer(new AllPropertiesExtractor()); var customer = new Customer { Age = 1, Name = "13" }; context.Tests.Add(new TestTable { Id = 1, CompositeKey = Guid.NewGuid().ToString(), String = "123", Customer = customer, CustomerSerialized = serializer.Serialize(customer), }); context.Users.Add(new UsersTable { Email = "123", Id = Guid.NewGuid(), Patronymic = "1", Surname = "2", FirstName = "3", ScopeId = "scopeId", }); context.SaveChanges(); } using var browser = new BrowserForTests(); var usersPage = browser.LoginAsSuperUser().SwitchTo <BusinessObjectTablePage>("UsersTable"); usersPage = browser.RefreshUntil(usersPage, x => x.BusinessObjectItems.IsPresent.Get()); usersPage.TableHeader.WaitPresence(); usersPage.TableHeader.SortByColumn("Header_Id"); var largeObjectPage = browser.SwitchTo <BusinessObjectTablePage>("TestTable"); largeObjectPage = browser.RefreshUntil(largeObjectPage, x => x.BusinessObjectItems.IsPresent.Get()); largeObjectPage.TableHeader.WaitPresence(); largeObjectPage.TableHeader.WaitNotSortable("Header_Index"); largeObjectPage.TableHeader.WaitNotSortable("Header_String"); largeObjectPage.TableHeader.WaitNotSortable("Header_DateTime"); }
public void TestNonSuperUserCantEditOrDeleteObject() { var document = CqlDocumentsForTests.GetCqlDocumentPrintingInfo(); using (var context = new CqlDbContext()) context.GetTable <DocumentPrintingInfo>().Insert(document).SetTimestamp(DateTimeOffset.UtcNow).Execute(); using var browser = new BrowserForTests(); var printingInfoPage = browser.SwitchTo <BusinessObjectTablePage>("DocumentPrintingInfo"); printingInfoPage.OpenFilter.Click(); printingInfoPage.FilterModal.GetFilter("Id").Input.ClearAndInputText(document.Id.ToString()); printingInfoPage.FilterModal.Apply.Click(); var detailsPage = printingInfoPage.BusinessObjectItems[0].Details.ClickAndGoTo <BusinessObjectDetailsPage>(); detailsPage.RootAccordion.FindField("PartyId").Edit.WaitAbsence(); detailsPage.Delete.WaitAbsence(); }
public void TestTableFiltration() { var scopeId = Guid.NewGuid().ToString(); CreateUsers(21, scopeId); var filtrationGuid = Guid.NewGuid(); CreateUsers(1, scopeId, filtrationGuid); using var browser = new BrowserForTests(); var userBusinessObjectPage = browser.SwitchTo <BusinessObjectTablePage>("UsersTable"); userBusinessObjectPage.OpenFilter.Click(); userBusinessObjectPage.FilterModal.Id.ClearAndInputText(filtrationGuid.ToString()); userBusinessObjectPage.FilterModal.Apply.Click(); userBusinessObjectPage.BusinessObjectItems.WaitCount(1); userBusinessObjectPage.BusinessObjectItems[0].Id.WaitText(filtrationGuid.ToString()); }
public void TestInputValidation() { CreateUsers(1, Guid.NewGuid().ToString()); using var browser = new BrowserForTests(); var userBusinessObjectPage = browser.SwitchTo <BusinessObjectTablePage>("UsersTable"); userBusinessObjectPage.OpenFilter.Click(); var filter = userBusinessObjectPage.FilterModal.GetFilter("ScopeId"); filter.Input.ClearAndInputText("<script>"); userBusinessObjectPage.FilterModal.Apply.Click(); filter.InputValidation.ExpectIsOpenedWithMessage("Некорректный символ: '<'"); filter.Input.ClearAndInputText(" "); userBusinessObjectPage.FilterModal.Apply.Click(); userBusinessObjectPage.FilterModal.WaitAbsence(); userBusinessObjectPage.NothingFound.WaitAbsence(); userBusinessObjectPage.BusinessObjectItems.Count.Wait().That(Is.GreaterThan(0)); }
public void TestContent() { var users = GenerateRandomUsersAndAssertCount(10); var scopeId = users[0].ScopeId; using var browser = new BrowserForTests(); var businessObjectPage = browser.SwitchTo <BusinessObjectTablePage>("UsersTable"); businessObjectPage.OpenFilter.Click(); businessObjectPage.FilterModal.ScopeId.ClearAndInputText(scopeId); businessObjectPage.FilterModal.Apply.Click(); var content = DownloadFile(browser, businessObjectPage); content.Length.Should().Be(12); var usersById = users.ToDictionary(x => x.Id.ToString(), x => x); var sep = ";"; var headerFields = new[] { "Id", "ScopeId", "LastModificationDateTime", "Email", "FirstName", "Surname", "Patronymic", "IsSuperUser" }; var header = string.Join(sep, headerFields.Select(FormatString)); content[0].Should().Be(header); content[11].Should().BeEmpty(); for (var i = 1; i < 11; i++) { var item = content[i].Split(new[] { sep }, StringSplitOptions.None); var key = item[0].Replace("\"", "").Replace("=", ""); var user = usersById[key]; var empty = FormatString(string.Empty); item[1].Should().Be(FormatString(scopeId)); DateTime.TryParseExact(item[2].Replace("\"", ""), "O", CultureInfo.InvariantCulture, DateTimeStyles.None, out _).Should().BeTrue(); item[3].Should().Be(FormatString(user.Email)); item[4].Should().Be(empty); item[5].Should().Be(FormatNumber("123")); item[6].Should().Be(FormatString("Some String")); item[7].Should().Be(FormatString("False")); } }
public void TestTableSettingField() { var scopeId = Guid.NewGuid().ToString(); CreateUsers(21, scopeId); var filtrationGuid = Guid.NewGuid(); CreateUsers(1, scopeId, filtrationGuid); using var browser = new BrowserForTests(); var userBusinessObjectPage = browser.SwitchTo <BusinessObjectTablePage>("UsersTable"); userBusinessObjectPage.OpenFilter.Click(); userBusinessObjectPage.FilterModal.Id.ClearAndInputText(filtrationGuid.ToString()); userBusinessObjectPage.FilterModal.Apply.Click(); userBusinessObjectPage.FieldSettings.Click(); userBusinessObjectPage.ColumnSelector.ColumnCheckboxes.GetCheckbox("Id").Click(); userBusinessObjectPage.Header.Click(); userBusinessObjectPage.BusinessObjectItems[0].Id.WaitAbsence(); userBusinessObjectPage.BusinessObjectItems[0].ScopeId.WaitText(scopeId); }
public void TestSortDocuments() { var id = Guid.NewGuid().ToString(); var documents = Enumerable.Range(0, 100) .Select(x => new CqlActiveBoxState { PartitionKey = id, BoxId = Guid.NewGuid() }) .ToArray(); using (var context = new CqlDbContext()) context.InsertDocuments(documents); using var browser = new BrowserForTests(); var showTableEntriesPage = browser.SwitchTo <BusinessObjectTablePage>("CqlActiveBoxState"); showTableEntriesPage.OpenFilter.Click(); showTableEntriesPage.FilterModal.GetFilter("PartitionKey").Input.ClearAndInputText(id); showTableEntriesPage.FilterModal.Apply.Click(); showTableEntriesPage.TableHeader.SortByColumn("Header_BoxId"); showTableEntriesPage.TableHeader.SortByColumn("Header_BoxId"); showTableEntriesPage.BusinessObjectItems.Wait(x => x.FindColumn("BoxId").Text).That(Is.EqualTo(GetBoxIds(documents))); showTableEntriesPage.Paging.GoToNextPage(); showTableEntriesPage.BusinessObjectItems.Wait(x => x.FindColumn("BoxId").Text).That(Is.EqualTo(GetBoxIds(documents, skip: 20))); showTableEntriesPage.Paging.PagesCount.Wait().That(Is.EqualTo(5)); showTableEntriesPage.CountDropdown.CurrentCount.Click(); showTableEntriesPage.CountDropdown.Menu.GetItemByUniqueTid("##50Items").Click(); showTableEntriesPage.BusinessObjectItems.Wait(x => x.FindColumn("BoxId").Text).That(Is.EqualTo(GetBoxIds(documents, take: 50))); showTableEntriesPage.Paging.PagesCount.Wait().That(Is.EqualTo(2)); showTableEntriesPage.CountDropdown.CurrentCount.Click(); showTableEntriesPage.CountDropdown.Menu.GetItemByUniqueTid("##100Items").Click(); showTableEntriesPage.BusinessObjectItems.Wait(x => x.FindColumn("BoxId").Text).That(Is.EqualTo(GetBoxIds(documents, take: 100))); showTableEntriesPage.Paging.WaitAbsence(); }
public void TestFindObject() { var objectId = Guid.NewGuid().ToString("D"); var lastEventId = Guid.NewGuid().ToString("D"); CreateApiClient(objectId, lastEventId); using var browser = new BrowserForTests(); var searchPage = browser.SwitchTo <BusinessObjectTablePage>("ApiClientThrift"); searchPage.FilterModal.GetFilter("Id").Input.ClearAndInputText(objectId); searchPage.FilterModal.GetFilter("ScopeId").Input.ClearAndInputText("scopeId"); searchPage.FilterModal.GetFilter("ArrayIndex").Input.ClearAndInputText("arrayIndex"); searchPage.FilterModal.Apply.Click(); searchPage.BusinessObjectItems.WaitCount(1); var detailsPage = searchPage.BusinessObjectItems[0].Details.ClickAndGoTo <BusinessObjectDetailsPage>(); detailsPage.RootAccordion.FindField("Id").FieldValue.WaitText(objectId); detailsPage.RootAccordion.FindField("ScopeId").FieldValue.WaitText("scopeId"); detailsPage.RootAccordion.FindField("ArrayIndex").FieldValue.WaitText("arrayIndex"); detailsPage.RootAccordion.FindField("Description").FieldValue.WaitText(lastEventId); }
public void TestSearch() { using var browser = new BrowserForTests(); var businessObjectsPage = browser.SwitchTo <BusinessObjectsPage>(); businessObjectsPage.FilterInput.ClearAndInputText("CI"); businessObjectsPage.ObjectGroups.WaitCount(1); businessObjectsPage.ObjectGroups .GetItemWithText(x => x.Name.Text, "CQL Paged Objects").ObjectsList .Wait(x => x.ObjectLink.Text) .That(Is.EqualTo(new[] { "CqlOrganizationInfo", "CqlUserInfo" })); businessObjectsPage.FilterInput.ClearAndInputText("DocMe"); businessObjectsPage.ObjectGroups.WaitCount(2); businessObjectsPage.ObjectGroups .GetItemWithText(x => x.Name.Text, "CQL Objects").ObjectsList .Wait(x => x.ObjectLink.Text) .That(Is.EqualTo(new[] { "DocumentBindingsMeta" })); businessObjectsPage.ObjectGroups .GetItemWithText(x => x.Name.Text, "CQL Paged Objects").ObjectsList .Wait(x => x.ObjectLink.Text) .That(Is.EqualTo(new[] { "CqlDocumentMeta" })); }
public void TestThreePages() { var scopeId = Guid.NewGuid().ToString(); CreateFtpUsers(51, scopeId); using var browser = new BrowserForTests(); var ftpUsersPage = browser.SwitchTo <BusinessObjectTablePage>("FtpUser"); ftpUsersPage.OpenFilter.Click(); ftpUsersPage.FilterModal.GetFilter("Login").Input.ClearAndInputText(scopeId); ftpUsersPage.FilterModal.Apply.Click(); ftpUsersPage = browser.RefreshUntil(ftpUsersPage, page => page.ItemsCountInfo.Text.Get().Contains("Всего 51")); ftpUsersPage.ItemsCountInfo.WaitTextContains("Записи с 0 по 20", "Всего 51"); ftpUsersPage.BusinessObjectItems.WaitCount(20); ftpUsersPage.Paging.PagesCount.Wait().That(Is.EqualTo(3)); ftpUsersPage.Paging.GoToPage(2); ftpUsersPage.ItemsCountInfo.WaitTextContains("Записи с 20 по 40", "Всего 51"); ftpUsersPage.BusinessObjectItems.WaitCount(20); ftpUsersPage.Paging.GoToPage(3); ftpUsersPage.ItemsCountInfo.WaitTextContains("Записи с 40 по 51", "Всего 51"); ftpUsersPage.BusinessObjectItems.WaitCount(11); ftpUsersPage.Paging.GoToPage(1); ftpUsersPage.ItemsCountInfo.WaitTextContains("Записи с 0 по 20", "Всего 51"); ftpUsersPage.CountDropdown.CurrentCount.Click(); ftpUsersPage.CountDropdown.Menu.GetItemByUniqueTid("##50Items").Click(); ftpUsersPage.ItemsCountInfo.WaitTextContains("Записи с 0 по 50", "Всего 51"); ftpUsersPage.BusinessObjectItems.WaitCount(50); ftpUsersPage.Paging.PagesCount.Wait().That(Is.EqualTo(2)); ftpUsersPage.Paging.GoToPage(2); ftpUsersPage.ItemsCountInfo.WaitTextContains("Записи с 50 по 51", "Всего 51"); ftpUsersPage.BusinessObjectItems.WaitCount(1); }