コード例 #1
0
        public void TestMultipleSearch1Field(Enums.ResourceType resourceType, ReadInvalidInputTestData.ItemState itemState, string fieldName, string firstCondition, string secondCondition)
        {
            ItemStateHelper.SearchParameters searchParameters = null;
            List <XmlResource> result     = null;
            string             fieldAlias = $"{resourceType.ToResourceName()}.{fieldName}";
            var extraUrlParameters        = new Dictionary <string, object>();

            if (itemState != ReadInvalidInputTestData.ItemState.None)
            {
                extraUrlParameters.Add(DeletedDataFields.ItemState, itemState.ToLowerString());
            }

            var itemStateType       = itemState == ReadInvalidInputTestData.ItemState.None ? ReadInvalidInputTestData.ItemState.All : itemState;
            var extraConditionParam = new Dictionary <string, object>(extraUrlParameters);

            extraConditionParam["condition"] = $"{resourceType.ToResourceName()}.P_Id:ge={ItemStateHelper.RecordIds[itemStateType](resourceType, RecordNum, recordsIn90Days, recordsOver90Days, deletedRecordsMapping)["Min"]},{resourceType.ToResourceName()}.P_Id:le={ItemStateHelper.RecordIds[itemStateType](resourceType, RecordNum, recordsIn90Days, recordsOver90Days, deletedRecordsMapping)["Max"]}";

            //Result code
            var resultCode = (fieldName == DeletedDataFields.P_UpdateDate) && (itemState == ReadInvalidInputTestData.ItemState.Deleted || itemState == ReadInvalidInputTestData.ItemState.All) && (firstCondition.ContainsStrings(new string[] { DateTimeValidator.Le, DateTimeValidator.Lt }) && secondCondition.ContainsStrings(new string[] { DateTimeValidator.Le, DateTimeValidator.Lt }))
                             ? Enums.PublicAPIResultCode.DateTimeOutOfRange : Enums.PublicAPIResultCode.Success;

            //Read & verify data
            switch (fieldName)
            {
            case DeletedDataFields.P_UpdateDate:
                result           = ItemStateHelper.GetAllResults(resourceType, fieldAlias, 0, MaxCount, extraConditionParam).Items;
                searchParameters = new ItemStateHelper.SearchParameters(fieldAlias, fieldAlias, firstCondition, secondCondition,
                                                                        result[Util.GetRandomNumber(20, 50)].DictionaryValues[fieldAlias].ToString(),
                                                                        result[Util.GetRandomNumber(120, 150)].DictionaryValues[fieldAlias].ToString());
                ItemStateHelper.VerifySearchDate(resourceType, searchParameters, resultCode, extraUrlParameters, false);
                break;

            case DeletedDataFields.P_Id:
                searchParameters = new ItemStateHelper.SearchParameters(fieldAlias, fieldAlias, firstCondition, secondCondition,
                                                                        ItemStateHelper.RecordIds[itemStateType](resourceType, RecordNum, recordsIn90Days, recordsOver90Days, deletedRecordsMapping)["Min"] + RecordNum,
                                                                        ItemStateHelper.RecordIds[itemStateType](resourceType, RecordNum, recordsIn90Days, recordsOver90Days, deletedRecordsMapping)["Max"] - RecordNum);
                ItemStateHelper.VerifyMultiSearchOneFieldById(resourceType, searchParameters, extraUrlParameters);
                break;

            case DeletedDataFields.P_UpdateBy:
                result           = ItemStateHelper.GetAllResults(resourceType, fieldAlias, 0, 0, extraConditionParam).Items;
                searchParameters = new ItemStateHelper.SearchParameters(fieldAlias, fieldAlias, firstCondition, secondCondition,
                                                                        ((result[1].DictionaryValues[$"{fieldAlias}"] as XmlResource).DictionaryValues["User"] as XmlResource).DictionaryValues["User.P_Id"].ToString(),
                                                                        ((result[7].DictionaryValues[$"{fieldAlias}"] as XmlResource).DictionaryValues["User"] as XmlResource).DictionaryValues["User.P_Id"].ToString()
                                                                        );
                ItemStateHelper.VerifyMultiSearchOneFieldById(resourceType, searchParameters, extraUrlParameters);
                break;
            }
        }