private static void WriteAndVerifyCommonOption(Operation operation, OptionNestingType node, InvalidOptionCommonCases inputType, string optionParameter)
        {
            string valueInput = OptionData.InvalidCommonOptionMapper[inputType].ToString();
            var    response   = WriteInvalidOption(operation, node, optionParameter, valueInput);

            Common.AssertWriteUnsuccessOption(response, ResultCode.InvalidValue);
        }
Example #2
0
        public void TestOptionUserDefineSearch(OptionNestingType optionNestingType)
        {
            var aliasOption         = optionNestingType == OptionNestingType.Parent ? ParentOptionWithChild : ChildOptionAlias.Split('.')[1];
            var optionSearchHandler = new OptionSearchManager();
            var response            = optionSearchHandler.OptionSearch <OptionSearchAliasResponse>(GetOptionSearchParameters(aliasOption), HttpMethod.Post);

            PrAssert.That(response, PrIs.SuccessfulResponse().And.HttpCode(System.Net.HttpStatusCode.OK));
            PrAssert.That(response.Result.Total, PrIs.Not.Null.And.EqualTo(response.Result.Result.Count));
            VerifyOptionData(response.Result.Result, aliasOption);
        }
Example #3
0
        private static void WriteAndVerifyOptionByName(int numberOfOptions, OptionNestingType optionNestingType, string valueInput, List <OptionWriteResponse> options = null)
        {
            var response = options != null?Common.UpdateOptions(options, optionNestingType, 0, valueInput) : Common.CreateOptions(numberOfOptions, optionNestingType, -1, 0, valueInput);

            Common.AssertWriteSuccessOption(response);

            //Verify
            foreach (var item in response.Result)
            {
                PrAssert.That(Common.SearchOptionByIdAndVerifyResult(item.Id).Name, PrIs.EqualTo(valueInput), string.Format(errorMessage, "Name"));
            }
        }
Example #4
0
        public void WriteLargeDataOption(OptionNestingType optionNestingType, LargeDataCases inputType)
        {
            var response = Common.CreateOptions((int)inputType - 1, optionNestingType, -1);

            Common.AssumeWriteSuccessOption(response);
            //Verify
            var options = optionNestingType == OptionNestingType.Parent ? response.Result : response.Result.SingleOrDefault().Children;

            PrAssert.That(options.Count, PrIs.EqualTo((int)inputType), "Actual value is not same as expected");
            foreach (var item in options)
            {
                PrAssert.That(Common.SearchOptionByIdAndVerifyResult(item.Id).Id, PrIs.EqualTo(item.Id), string.Format(Common.errorMessage, "Id"));
            }
        }
        /// <summary>
        /// Create/Update a child/parent option
        /// </summary>
        /// <param name="operation">Insert or Update</param>
        /// <param name="node">Children or parent</param>
        /// <param name="inputType">Test cases</param>
        /// <param name="optionParameter">Paremeters</param>
        private static void WriteAndVerifyOption(Operation operation, OptionNestingType node, InvalidOptionCases inputType, string optionParameter)
        {
            string valueInput = OptionData.InvalidOptionMapper[inputType].ToString();
            PrivateApiResponse <List <OptionWriteResponse> > response = null;

            switch (inputType)
            {
            case InvalidOptionCases.Missing:
                response = WriteInvalidMissingOption(operation, node, optionParameter);
                Common.AssertWriteUnsuccessOption(response, ResultCode.ParameterInsufficient);
                break;

            default:
                response = WriteInvalidOption(operation, node, optionParameter, valueInput);
                Common.AssertWriteUnsuccessOption(response, ResultCode.InvalidValue);
                break;
            }
        }
Example #6
0
        /// <summary>
        /// Create/Update a child/parent option
        /// </summary>
        /// <param name="requestType">Request type</param>
        /// <param name="optionNestingType">Child/Parent</param>
        /// <param name="inputType">Test case</param>
        /// <param name="options">options == null : 'create' ? 'update'</param>
        private static void WriteAndVerifyOption(RequestType requestType, OptionNestingType optionNestingType, ValidOptionCases inputType, List <OptionWriteResponse> options = null)
        {
            string valueInput      = OptionData.ValidOptionMapper[inputType].ToString();
            int    numberOfOptions = RequestType.Multiple == requestType ? NumberOfOptions : 0;

            switch (inputType)
            {
            case ValidOptionCases.Id:
                WriteAndVerifyOptionById(numberOfOptions, optionNestingType, int.Parse(valueInput), options);
                break;

            case ValidOptionCases.ParentIdZero:
                WriteAndVerifyOptionByParentId(numberOfOptions, optionNestingType, int.Parse(valueInput), options);
                break;

            case ValidOptionCases.ParentIdExisted:
                int parentId = Common.GetOptionsByCurrentContext("parentOptionCreateResponse").FirstOrDefault().Id;
                WriteAndVerifyOptionByParentId(numberOfOptions, optionNestingType, parentId, options);
                break;

            case ValidOptionCases.NameBasicLatin:
            case ValidOptionCases.NameCyrillic:
            case ValidOptionCases.NameHiragana:
            case ValidOptionCases.NameKanji:
            case ValidOptionCases.NameMaxLength:
            case ValidOptionCases.NameKatakana:
                WriteAndVerifyOptionByName(numberOfOptions, optionNestingType, valueInput, options);
                break;

            case ValidOptionCases.SortZero:
            case ValidOptionCases.SortOne:
                WriteAndVerifyOptionBySort(numberOfOptions, optionNestingType, int.Parse(valueInput), options);
                break;

            case ValidOptionCases.EnabledZero:
            case ValidOptionCases.EnabledOne:
                WriteAndVerifyOptionByEnabled(numberOfOptions, optionNestingType, int.Parse(valueInput), options);
                break;

            default:     //Type
                WriteAndVerifyOptionByType(numberOfOptions, optionNestingType, int.Parse(valueInput), options);
                break;
            }
        }
Example #7
0
        /// <summary>
        /// Create a option
        /// </summary>
        /// <param name="loop">Created number option</param>
        /// <param name="optionNestingType">Child or parent</param>
        /// <param name="id">Id</param>
        /// <param name="parentId">Parent id</param>
        /// <param name="name">Name</param>
        /// <param name="type">Type</param>
        /// <param name="enabled">Enabled</param>
        /// <param name="sort">Sort</param>
        /// <returns>List option</returns>
        public static PrivateApiResponse <List <OptionWriteResponse> > CreateOptions(int numberOfOptions = 0, OptionNestingType optionNestingType = OptionNestingType.Parent, int id = -1, int parentId = 0
                                                                                     , string name       = "Test Option", int type = 0, int?enabled = null, int?sort = null)
        {
            var optionHandler           = new OptionManager();
            var optionRequestParameters = new Dictionary <string, object>()
            {
                ["id"]        = id,
                ["parent_id"] = parentId,
                ["name"]      = name,
                ["type"]      = type,
            };

            optionRequestParameters.AddIfNotNull("enabled", enabled);
            optionRequestParameters.AddIfNotNull("sort", sort);

            var childOptionParameters = new Dictionary <string, object>(optionRequestParameters);
            var listOptions           = new List <Dictionary <string, object> >();

            childOptionParameters.Remove("parent_id");

            if (OptionNestingType.Parent == optionNestingType)
            {
                for (int i = 0; i <= numberOfOptions; i++)
                {
                    listOptions.Add(optionRequestParameters);
                }
            }
            else
            {
                var listChildOptions = new List <Dictionary <string, object> >();
                for (int i = 0; i <= numberOfOptions; i++)
                {
                    listChildOptions.Add(childOptionParameters);
                }
                optionRequestParameters.Add("children", listChildOptions);
                listOptions.Add(optionRequestParameters);
            }

            return(optionHandler.WriteOptions(listOptions));
        }
Example #8
0
        /// <summary>
        /// Update a option
        /// </summary>
        /// <param name="options">List option</param>
        /// <param name="optionNestingType">Child or parent</param>
        /// <param name="parentId">Parent id</param>
        /// <param name="name">Name</param>
        /// <param name="type">Type</param>
        /// <param name="enabled">Enabled</param>
        /// <param name="sort">Sort</param>
        /// <returns>List option</returns>
        public static PrivateApiResponse <List <OptionWriteResponse> > UpdateOptions(List <OptionWriteResponse> options, OptionNestingType optionNestingType = OptionNestingType.Parent, int parentId = 0, string name = "Test Option"
                                                                                     , int type = 0, int?enabled = null, int?sort = null)
        {
            var optionHandler           = new OptionManager();
            var optionRequestParameters = new Dictionary <string, object>()
            {
                ["id"]        = -1,
                ["parent_id"] = parentId,
                ["name"]      = name,
                ["type"]      = type,
            };

            optionRequestParameters.AddIfNotNull("enabled", enabled);
            optionRequestParameters.AddIfNotNull("sort", sort);

            var listOptions = new List <Dictionary <string, object> >();

            if (OptionNestingType.Parent == optionNestingType)
            {
                foreach (var option in options)
                {
                    optionRequestParameters["id"] = option.Id;
                    listOptions.Add(optionRequestParameters);
                }
            }
            else
            {
                optionRequestParameters["id"] = options.FirstOrDefault().Id;
                var listChildOptions = new List <Dictionary <string, object> >();
                foreach (var optionChilds in options.Select(item => item.Children))
                {
                    foreach (var child in optionChilds)
                    {
                        var childOptionParameters = new Dictionary <string, object>(optionRequestParameters);
                        childOptionParameters.Remove("parent_id");
                        childOptionParameters["id"] = child.Id;
                        listChildOptions.Add(childOptionParameters);
                    }
                }
                optionRequestParameters.Add("children", listChildOptions);
                listOptions.Add(optionRequestParameters);
            }

            return(optionHandler.WriteOptions(listOptions));
        }
Example #9
0
 public void UpdateValidOption(RequestType requestType, OptionNestingType optionNestingType, ValidOptionCases inputType)
 {
     WriteAndVerifyOption(requestType, optionNestingType, inputType, optionNestingType == OptionNestingType.Parent ? Common.GetOptionsByCurrentContext("parentOptionCreateResponse") : Common.GetOptionsByCurrentContext("childOptionCreateResponse"));
 }
Example #10
0
 public void CreateValidOption(RequestType requestType, OptionNestingType optionNestingType, ValidOptionCases inputType)
 {
     WriteAndVerifyOption(requestType, optionNestingType, inputType);
 }
 private static PrivateApiResponse <List <OptionWriteResponse> > WriteInvalidMissingOption(Operation operation, OptionNestingType node, string parameter)
 {
     return(OptionNestingType.Parent == node?WriteInvalidMissingParentOption(operation, parameter) : WriteInvalidMissingChildrenOption(operation, parameter));
 }
 private static PrivateApiResponse <List <OptionWriteResponse> > WriteInvalidOption(Operation operation, OptionNestingType node, string parameter, string value)
 {
     return(OptionNestingType.Parent == node?WriteInvalidParentOption(operation, parameter, value) : WriteInvalidChildrenOption(operation, parameter, value));
 }
 public void WriteInvalidCommonOption(Operation operation, OptionNestingType node, string optionParameter, InvalidOptionCommonCases inputType)
 {
     WriteAndVerifyCommonOption(operation, node, inputType, optionParameter);
 }