Example #1
0
        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"));
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }
Example #5
0
        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);
        }
Example #6
0
        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");
        }
Example #11
0
        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();
        }
Example #13
0
        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);
        }
Example #14
0
        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);
        }
Example #15
0
        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));
            }
        }
Example #16
0
        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();
        }
Example #18
0
        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());
        }
Example #19
0
        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));
        }
Example #20
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"));
            }
        }
Example #21
0
        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);
        }
Example #22
0
        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" }));
        }
Example #25
0
        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);
        }