コード例 #1
0
        public void TestReadPhaseWithDuplicateParameters(string param, bool isDuplicatedValue)
        {
            Enums.ResourceType          job        = Enums.ResourceType.Job;
            Dictionary <string, object> parameters = new Dictionary <string, object>()
            {
                { PhaseApiFields.Partition, AuthenticationInfoProvider.Current.DefaultPartition },
            };

            List <object> duplicatedParameters = new List <object>();

            var parameterValues = new Dictionary <string, object>
            {
                [PhaseApiFields.ResourceId + "1"] = (int)records.Data[$"{job.ToPrivateEnum()}0"].Id,
                [PhaseApiFields.ResourceId + "2"] = (int)records.Data[$"{job.ToPrivateEnum()}1"].Id,
                [PhaseApiFields.Id + "1"]         = PhaseHelper.CreatePhase(job, records.Data[$"{job.ToPrivateEnum()}0"].Id.ToString()),
                [PhaseApiFields.Id + "2"]         = PhaseHelper.CreatePhase(job, records.Data[$"{job.ToPrivateEnum()}1"].Id.ToString()),
                [PhaseApiFields.Resource + "1"]   = (int)Enums.ResourceType.Client,
                [PhaseApiFields.Resource + "2"]   = (int)Enums.ResourceType.Activity,
                [PhaseApiFields.Count + "1"]      = 10,
                [PhaseApiFields.Count + "2"]      = 11,
                [PhaseApiFields.Start + "1"]      = 10,
                [PhaseApiFields.Start + "2"]      = 12,
                [PhaseApiFields.Field + "1"]      = PhaseApiFields.Memo,
                [PhaseApiFields.Field + "2"]      = PhaseApiFields.Phase,
                [PhaseApiFields.Condition + "1"]  = $"{nameof(PhaseApiFields.Id)}:eq={records.Data[$"{job.ToPrivateEnum()}0"].Id}",
                [PhaseApiFields.Condition + "2"]  = $"{nameof(PhaseApiFields.Id)}:eq={records.Data[$"{job.ToPrivateEnum()}1"].Id}",
                [PhaseApiFields.Order + "1"]      = $"{PhaseApiFields.Order}={nameof(PhaseApiFields.Id)}:{records.Data[$"{job.ToPrivateEnum()}0"].Id}",
                [PhaseApiFields.Order + "2"]      = $"{PhaseApiFields.Order}={nameof(PhaseApiFields.Id)}:{records.Data[$"{job.ToPrivateEnum()}1"].Id}",
            };

            if (isDuplicatedValue)
            {
                duplicatedParameters = new List <object>
                {
                    parameterValues[$"{param}1"],
                    parameterValues[$"{param}1"],
                    parameterValues[$"{param}1"],
                };
            }
            else
            {
                duplicatedParameters = new List <object>
                {
                    parameterValues[$"{param}1"],
                    parameterValues[$"{param}2"],
                    parameterValues[$"{param}2"],
                };
            }

            if (param != PhaseApiFields.Resource)
            {
                parameters.Add(PhaseApiFields.Resource, (int)job);
            }
            parameters.Add(param, duplicatedParameters);

            ErrorCode result = PublicApiAdapter.CreateAdapterForDefaultConnection().ReadFail <Phase>(parameters);

            Assert.That(result, MustBe.MatchingErrorCode(Enums.PublicAPIResultCode.ParameterIsInvalid), Enums.Message.WRONG_ERROR_CODE);
        }
コード例 #2
0
        private Dictionary <string, object> GetUrlParameters(ReadSpecialInvalidInput inputType)
        {
            Dictionary <string, object> result = new Dictionary <string, object>()
            {
                [PhaseApiFields.Partition] = AuthenticationInfoProvider.Current.DefaultPartition,
                [PhaseApiFields.Resource]  = (int)defaultResource,
            };

            long   numberNotExist = 9000554554;
            string phaseId        = PhaseHelper.CreatePhase(defaultResource, records.Data[defaultResource.ToPrivateEnum() + "0"].Id.ToString());

            switch (inputType)
            {
            case ReadSpecialInvalidInput.CountEquals0:
                result[PhaseApiFields.Count] = 0;
                break;

            case ReadSpecialInvalidInput.CountOver200:
                result[PhaseApiFields.Count] = 201;
                break;

            case ReadSpecialInvalidInput.MissingPartition:
                result.Remove(PhaseApiFields.Partition);
                break;

            case ReadSpecialInvalidInput.MissingResource:
                result.Remove(PhaseApiFields.Resource);
                break;

            case ReadSpecialInvalidInput.ResourceName:
                result[PhaseApiFields.Resource] = defaultResource.ToLowerString();
                break;

            case ReadSpecialInvalidInput.StartEqualsTotal:
                result[PhaseApiFields.Start] = total;
                break;

            case ReadSpecialInvalidInput.StartGreaterThanTotal:
                result[PhaseApiFields.Start] = total + 1;
                break;

            case ReadSpecialInvalidInput.ResourceIdNotExist:
                result[PhaseApiFields.ResourceId] = numberNotExist;
                break;

            case ReadSpecialInvalidInput.ResourceIdFromAnotherResource:
                result[PhaseApiFields.ResourceId] = records.Data[Enums.ResourceType.Resume.ToPrivateEnum() + "0"].Id;
                break;

            case ReadSpecialInvalidInput.ResourceIdValidNumberInHex:
                result[PhaseApiFields.ResourceId] = "0x" + records.Data[defaultResource.ToPrivateEnum() + "0"].Id.ToString("X");
                break;

            case ReadSpecialInvalidInput.ResourceIdInvalidNumberInHex:
                result[PhaseApiFields.ResourceId] = "0x" + numberNotExist.ToString("X");
                break;

            case ReadSpecialInvalidInput.ResourceIdValidNumberInE:
                result[PhaseApiFields.ResourceId] = Util.ToExponential(records.Data[defaultResource.ToPrivateEnum() + "0"].Id.ToString());
                break;

            case ReadSpecialInvalidInput.ResourceIdInvalidNumberInE:
                result[PhaseApiFields.ResourceId] = Util.ToExponential(numberNotExist.ToString());
                break;

            case ReadSpecialInvalidInput.IdNotExist:
                result[PhaseApiFields.Id] = numberNotExist;
                break;

            case ReadSpecialInvalidInput.IdValidNumberInHex:
                result[PhaseApiFields.Id] = "0x" + int.Parse(phaseId).ToString("X");
                break;

            case ReadSpecialInvalidInput.IdInvalidNumberInHex:
                result[PhaseApiFields.Id] = "0x" + numberNotExist.ToString("X");
                break;

            case ReadSpecialInvalidInput.IdValidNumberInE:
                result[PhaseApiFields.Id] = Util.ToExponential(phaseId);
                break;

            case ReadSpecialInvalidInput.IdInvalidNumberInE:
                result[PhaseApiFields.Id] = Util.ToExponential(numberNotExist.ToString());
                break;
            }
            return(result);
        }
コード例 #3
0
        /// <summary>
        /// Verify data of fields
        /// </summary>
        /// <param name="resourceType">Resource type</param>
        /// <param name="inputType">Value type</param>
        /// <param name="fieldName">Field name</param>
        /// <param name="fieldValue">Field value</param>
        private void ReadAndVerifyData(Enums.ResourceType resourceType, ReadValidInput inputType, string fieldName, string fieldValue)
        {
            int    startFromParamValue = 0;
            string resourceId          = records.Data[$"{resourceType.ToPrivateEnum()}0"].Id.ToString();
            string phaseId             = string.Empty;

            Dictionary <string, object> parameters = new Dictionary <string, object>()
            {
                { PhaseApiFields.Partition, AuthenticationInfoProvider.Current.DefaultPartition },
                { PhaseApiFields.Resource, (int)resourceType },
            };

            switch (inputType)
            {
            case ReadValidInput.RandomStart:
                startFromParamValue = Util.GetRandomNumber(1, MaxReadBatchSize - 1);
                parameters.Add(fieldName, startFromParamValue);
                break;

            case ReadValidInput.StartEqualToTotalSubtract1:
                startFromParamValue = MaxReadBatchSize - 1;
                parameters.Add(fieldName, startFromParamValue);
                break;

            case ReadValidInput.NoParameter:
                break;

            case ReadValidInput.ResourceId:
                parameters.Add(fieldName, resourceId);
                parameters.Add(PhaseApiFields.Field, nameof(PhaseApiFields.ResourceId));
                break;

            case ReadValidInput.Id:
                phaseId = PhaseHelper.CreatePhase(resourceType, resourceId);
                parameters.Add(fieldName, phaseId);
                parameters.Add(PhaseApiFields.Field, nameof(PhaseApiFields.Id));
                break;

            default:
                parameters.Add(fieldName, fieldValue);
                break;
            }

            var result = PublicApiAdapter.CreateAdapterForDefaultConnection().ReadSuccess <Phase>(parameters);

            Assert.That(result.Code, Is.EqualTo(Enums.PublicAPIResultCode.Success), string.Format(Enums.Message.READ_RESOURCE_FAILED, "Phase"));

            switch (inputType)
            {
            case ReadValidInput.NoParameter:

                if (fieldName == PhaseApiFields.Count)
                {
                    Assert.That(result.Count, Is.EqualTo(SystemApiHelper.defaultCount), Enums.Message.COUNT_ERROR);
                }

                if (fieldName == PhaseApiFields.Start)
                {
                    Assert.That(result.Start, Is.EqualTo(SystemApiHelper.defaultStart), Enums.Message.START_ERROR);
                }

                break;

            case ReadValidInput.Count10:
                Assert.That(result.Count, Is.EqualTo(SystemApiHelper.defaultCount), Enums.Message.COUNT_ERROR);
                break;

            case ReadValidInput.RandomCount:
                Assert.That(result.Count, Is.EqualTo(int.Parse(fieldValue)), Enums.Message.COUNT_ERROR);
                break;

            case ReadValidInput.MaxCount:
                Assert.That(result.Count, Is.EqualTo(int.Parse(fieldValue)), Enums.Message.COUNT_ERROR);
                Assert.That(result.Items.Count, Is.EqualTo(int.Parse(fieldValue)), Enums.Message.COUNT_ERROR);
                break;

            case ReadValidInput.Start0:
            case ReadValidInput.Start0000:
                Assert.That(result.Start, Is.EqualTo(int.Parse(fieldValue)), Enums.Message.START_ERROR);
                break;

            case ReadValidInput.RandomStart:
            case ReadValidInput.StartEqualToTotalSubtract1:
                Assert.That(result.Start, Is.EqualTo(startFromParamValue), Enums.Message.START_ERROR);
                break;

            case ReadValidInput.ResourceId:
                Assert.That(result.Code, Is.EqualTo(Enums.PublicAPIResultCode.Success), string.Format(Enums.Message.READ_RESOURCE_FAILED, nameof(Phase)));
                Assert.That(result.Items[0].ResourceId, Is.EqualTo(resourceId), $"resourceId {resourceId} does not match!");
                break;

            case ReadValidInput.Id:
                Assert.That(result, MustBe.ReadSuccess(1), string.Format(Enums.Message.READ_RESOURCE_FAILED, nameof(Phase)));
                Assert.That(result.Items[0].Id, Is.EqualTo(phaseId), $"phaseId {phaseId} does not match!");
                break;
            }
        }