public void SearchUserFieldCore(ResourceId resourceId, SearchDateFieldCases.TestCases cases, bool isAsc)
        {
            var expectedOperator = cases == SearchDateFieldCases.TestCases.EqualsTo ? OperatorType.Eq : cases == SearchDateFieldCases.TestCases.Less ? OperatorType.Lt : OperatorType.Gt;
            var request          = SearchRequestComposer.GetBuilderWithRestrictions(resourceId)
                                   .WithSort(isAsc, $"{resourceId}.{FieldCreator.Data[$"{resourceId}_{TestCoreFramework.Enums.FieldType.DateTime}"].Name}")
                                   .DateFilter($"{resourceId}.{FieldCreator.Data[$"{resourceId}_{TestCoreFramework.Enums.FieldType.DateTime}"].Name}", expectedOperator,
                                               "Asia/Tokyo", CreateDateTime.ToString(SearchConstants.SearchApiFullDateTemplate));
            var handler  = new DefaultManager();
            var response = handler.Send <SearchResponse>(request);

            SearchDateFieldCases.VerifySearchResult(response, resourceId, cases, $"{resourceId.ToString()}.{FieldCreator.Data[$"{resourceId}_{TestCoreFramework.Enums.FieldType.DateTime}"].Name}", isAsc, RecordsCreator, NumRecordsEachCase, DateTimeResponseFormat);
        }
Esempio n. 2
0
        public static void VerifySearchResult(PrivateApiResponse <SearchResponse> response, ResourceId resourceId, SearchDateFieldCases.TestCases cases, string fieldName, bool isAsc, HrbcRecordCreator RecordsCreator, int NumRecordsEachCase, string DateTimeResponseFormat)
        {
            PrAssert.That(response, PrIs.SuccessfulResponse(), "Search unsuccesfull");
            PrAssert.That(response.Result.Items, PrIs.Not.Null.And.Not.Empty, "Null or Empty search response");
            PrAssert.That(response.Result.Items.Count, PrIs.GreaterThanOrEqualTo(NumRecordsEachCase), "Unexpected numbers of search results");
            List <int> ids = response.Result.Items;

            for (int i = (int)cases * NumRecordsEachCase; i < (int)cases * NumRecordsEachCase + NumRecordsEachCase; i++)
            {
                PrAssert.That(ids.Contains((int)RecordsCreator.Data[$"{resourceId}{i}"].Id), "The expected id is not in search result");
            }
            var recordHandler = new RecordManager();
            var res           = recordHandler.ReadRecords(
                RecordRequestComposer.ComposeReadRequest()
                .ForResource((Porters.TestCoreFramework.Enums.ResourceType)(int) resourceId)
                .WithIds(ids.ToArray())
                .Fields(fieldName, $"{ resourceId}.P_Id")
                .Result);
            List <long> expectedIdsList;

            if (isAsc)
            {
                expectedIdsList = res.Result.Items.OrderBy(item => DateTime.ParseExact(item[fieldName].ToString(), DateTimeResponseFormat, System.Globalization.CultureInfo.InvariantCulture)).Select(s => (long)s[$"{resourceId}.P_Id"]).ToList();
            }
            else
            {
                expectedIdsList = res.Result.Items.OrderByDescending(item => DateTime.ParseExact(item[fieldName].ToString(), DateTimeResponseFormat, System.Globalization.CultureInfo.InvariantCulture)).Select(s => (long)s[$"{resourceId}.P_Id"]).ToList();
            }
            for (int i = 0; i < ids.Count; i++)
            {
                PrAssert.That(expectedIdsList[i], PrIs.EqualTo(ids[i]), "The search result is not order as expected");
            }
        }
        public void SearchSystemApplicationFieldCore(ResourceId resourceId, string field, SearchDateFieldCases.TestCases cases, bool isAsc)
        {
            var expectedOperator = cases == SearchDateFieldCases.TestCases.EqualsTo ? OperatorType.Eq : cases == SearchDateFieldCases.TestCases.Less ? OperatorType.Lt : OperatorType.Gt;
            var requestBuilder   = SearchRequestComposer.GetBuilderWithRestrictions(resourceId)
                                   .WithSort(isAsc, $"{resourceId.ToString()}.{field}");
            var request = requestBuilder.DateFilter($"{resourceId.ToString()}.{field}", expectedOperator,
                                                    "Asia/Tokyo", CreateDateTime.ToString(SearchConstants.SearchApiShortDateTemplate));
            var handler  = new DefaultManager();
            var response = handler.Send <SearchResponse>(request);

            SearchDateFieldCases.VerifySearchResult(response, resourceId, cases, $"{resourceId.ToString()}.{field}", isAsc, RecordsCreator, NumRecordsEachCase, DateResponseFormat);
        }