public void SpecialInvalidCase(InvalidCase caseName, TestCoreFramework.Enums.ResourceType resourceId, int baseIndex, int mergeIndex)
        {
            MergeManager mergeHandler = new MergeManager();

            Common.SendAndVerifyMergeRequest(RecordsSpecialMergeCreator, mergeHandler, resourceId.ToPrivateApiResource(), 0, 1);
            Common.SendAndVerifyMergeRequest(RecordsSpecialMergeCreator, mergeHandler, resourceId.ToPrivateApiResource(), baseIndex, mergeIndex, false);
        }
        public void UpdateInvalidIdRecordWithTest(TestCoreFramework.Enums.ResourceType resourceId, int id)
        {
            var recordHandler = new RecordManager();
            var response      = recordHandler.UpdateRecords(
                RecordRequestComposer.ComposeUpdateRequest().Append(item => item.ForResource(resourceId)
                                                                    .Append(x => x.WithId(id))).Result);

            PrAssert.That(response, PrIs.ErrorResponse());
        }
        public void UpdateValidRecordWithIdTest(TestCoreFramework.Enums.ResourceType resourceId)
        {
            var recordHandler = new RecordManager();
            var response      = recordHandler.UpdateRecords(
                RecordRequestComposer.ComposeUpdateRequest().Append(item => item.ForResource(resourceId)
                                                                    .Append(x => x.WithId((int)RecordsCreator.Data[resourceId.ToPrivateApiResource()].Id))).Result);

            PrAssert.That(response, PrIs.SuccessfulResponse());
        }
Example #4
0
        public PrivateApiResponse <object> MakeFieldsActive(TestCoreFramework.Enums.ResourceType resource, Guid[] fieldGuids, LayoutItem fromSection, Guid toSection)
        {
            var unusedSection = GetUnusedFieldsSectionDetails(resource).Result.Values.First().Value;

            var request = new SetLayoutRequest
            {
                Values = new Dictionary <Guid, LayoutItem>
                {
                    [GetUiLayerId(resource)] = new LayoutItem
                    {
                        Id    = GetUiLayerId(resource),
                        Cells = new List <CellItem>
                        {
                            new CellItem
                            {
                                Content = new Dictionary <string, Guid> {
                                    ["layout"] = toSection
                                },
                                CoulmnsCount = 1,
                                RowsCount    = 1,
                                XLocation    = 1,
                                YLocation    = 10
                            }
                        }
                    },
                    [GetUnusedSectionId(resource)] = new LayoutItem
                    {
                        Id    = GetUnusedSectionId(resource),
                        Cells = unusedSection.Cells.Where(x => !fieldGuids.Any(item => item != x.Content["field"])).ToList()
                    },
                    [toSection] = new LayoutItem
                    {
                        Id    = toSection,
                        Cells = fieldGuids.Select(x => new CellItem
                        {
                            XLocation    = 1,
                            YLocation    = Array.IndexOf(fieldGuids, x),
                            CoulmnsCount = 1,
                            RowsCount    = 1,
                            Content      = new Dictionary <string, Guid>
                            {
                                ["field"] = x
                            }
                        }).ToList()
                    }
                }
            };

            var requestContent = ConvertToJsonString(request);


            using (LogHelper.LoggerForCurrentTest.EnterReproStep($"Making fields active by moving them to displayable section in UI"))
            {
                return(ProcessResponseWithContent <object>(Connection.SendAsync(FieldLayoutApiRelativeUrl, requestContent, HttpMethod.Put).Result));
            }
        }
Example #5
0
        private PrivateApiResponse <RecordsGetResponseItem> ReadRecords(TestCoreFramework.Enums.ResourceType readResource, int[] ids, string[] fields)
        {
            RecordManager recordHandler = new RecordManager();

            return(recordHandler.ReadRecords(
                       RecordRequestComposer.ComposeReadRequest()
                       .ForResource(readResource)
                       .WithIds(ids)
                       .Fields(fields)
                       .Result));
        }
        public void InsertInvalidPhaseDateRecordTest(TestCoreFramework.Enums.ResourceType resourceId, int ownerId, ResourceFields.ValidPhase phase, ResourceFields.InvalidDateTime time)
        {
            var fieldHandler = new FieldManager();
            var fields       = fieldHandler.GetFieldGuid(ResourceFields.RequireFields[resourceId], new[] { resourceId })
                               .Result.Result.ToDictionary(x => $"{char.ToUpper(x.Resource[0]) + x.Resource.Substring(1)}.{x.Alias}", x => (int)UuidUtil.GetId(x.Id));

            var recordHandler = new RecordManager();
            var request       = RecordRequestComposer.ComposeCreateRequest()
                                .Append(resourceId, CreateResourceRequiredFieldData(fields, resourceId, ownerId, phase, time))
                                .Result;

            var response = recordHandler.WriteRecords(request);

            PrAssert.That(response, PrIs.ErrorResponse());
        }
Example #7
0
        public void MergeRecords(ResourceId resourceId, TestCoreFramework.Enums.ResourceType readResource, string refField)
        {
            MergeManager mergeHandler = new MergeManager();

            Common.SendAndVerifyMergeRequest(RecordsMergeCreator, mergeHandler, resourceId, 0, 1);
            var readRecordData = ReadRecords(readResource, new[] { (int)RecordsMergeCreator.Data[$"{readResource.ToPrivateApiResource()}{0}"].Id, (int)RecordsMergeCreator.Data[$"{readResource.ToPrivateApiResource()}{1}"].Id }, new string[] { refField });

            PrAssert.That(readRecordData, PrIs.SuccessfulResponse());
            string readValue   = readRecordData.Result.Items.First()[refField].ToString();
            string actualValue = readValue.StartsWith("[") && readValue.EndsWith("]") ? JsonConvert.DeserializeObject <List <int> >(readValue).SingleOrDefault().ToString() : readValue;

            PrAssert.That(actualValue, PrIs.EqualTo(RecordsMergeCreator.Data[$"{resourceId}{0}"].Id.ToString()), $"The first {readResource} is not reference to base id record");
            readValue   = readRecordData.Result.Items.Last()[refField].ToString();
            actualValue = readValue.StartsWith("[") && readValue.EndsWith("]") ? JsonConvert.DeserializeObject <List <int> >(readValue).SingleOrDefault().ToString() : readValue;
            PrAssert.That(actualValue, PrIs.EqualTo(RecordsMergeCreator.Data[$"{resourceId}{0}"].Id.ToString()), $"The second {readResource} is not reference to base id record");
        }
        public void UpdateValidRecordWithOwnerTest(TestCoreFramework.Enums.ResourceType resourceId, int ownerId)
        {
            var fieldHandler = new FieldManager();
            var fields       = fieldHandler.GetFieldGuid(new List <string>()
            {
                "P_Owner"
            }, new[] { resourceId })
                               .Result.Result.ToDictionary(x => $"{char.ToUpper(x.Resource[0]) + x.Resource.Substring(1)}.{x.Alias}", x => (int)UuidUtil.GetId(x.Id));
            var recordHandler = new RecordManager();
            var response      = recordHandler.UpdateRecords(
                RecordRequestComposer.ComposeUpdateRequest().Append(item => item.ForResource(resourceId)
                                                                    .Append(x => x.WithId((int)RecordsCreator.Data[resourceId.ToPrivateApiResource()].Id).AppendField(fields[$"{resourceId.ToResourceName()}.P_Owner"], ownerId))).Result);

            PrAssert.That(response, PrIs.SuccessfulResponse());
            PrAssert.That(response.Result, PrIs.Not.Null);
            PrAssert.That(response.Result.Ids[0][0], PrIs.Not.Null);
        }
Example #9
0
        public void MergeTwoLevelClientRecords(TestCoreFramework.Enums.ResourceType resourceId)
        {
            MergeManager mergeHandler = new MergeManager();

            Common.SendAndVerifyMergeRequest(RecordsTwoLevelMergeCreator, mergeHandler, resourceId.ToPrivateApiResource(), 0, 1);
            Common.SendAndVerifyMergeRequest(RecordsTwoLevelMergeCreator, mergeHandler, resourceId.ToPrivateApiResource(), 2, 3);
            Common.SendAndVerifyMergeRequest(RecordsTwoLevelMergeCreator, mergeHandler, resourceId.ToPrivateApiResource(), 0, 2);
            var readRecordData = ReadRecords(resourceId, new[] { (int)RecordsTwoLevelMergeCreator.Data[$"{resourceId.ToPrivateApiResource()}{0}"].Id }, mappingDictionary[resourceId.ToPrivateApiResource()].Keys.ToArray());

            PrAssert.That(readRecordData, PrIs.SuccessfulResponse());
            foreach (var item in mappingDictionary[resourceId.ToPrivateApiResource()])
            {
                string readValue   = readRecordData.Result.Items.SingleOrDefault()[item.Key].ToString();
                string actualValue = readValue.StartsWith("[") && readValue.EndsWith("]") ? JsonConvert.DeserializeObject <List <int> >(readValue).SingleOrDefault().ToString() : readValue;
                PrAssert.That(actualValue, PrIs.EqualTo(item.Key == $"{resourceId}.P_Name" ? Common.MappingName : item.Value), $"The BaseId record field {item.Key} contains unexpected value");
            }
        }
        public void UpdateValidRecordWithOptionalFieldTest(TestCoreFramework.Enums.ResourceType resourceId, string field)
        {
            var fieldHandler = new FieldManager();
            var fields       = fieldHandler.GetFieldGuid(new List <string> {
                field.Split('.')[1]
            }, new[] { resourceId })
                               .Result.Result.ToDictionary(x => $"{char.ToUpper(x.Resource[0]) + x.Resource.Substring(1)}.{x.Alias}", x => (int)UuidUtil.GetId(x.Id));
            var recordHandler = new RecordManager();
            var response      = recordHandler.UpdateRecords(
                RecordRequestComposer.ComposeUpdateRequest().Append(item => item.ForResource(resourceId)
                                                                    .Append(x => x.WithId((int)RecordsCreator.Data[resourceId.ToPrivateApiResource()].Id).AppendField(fields[field], ResourceFields.FieldsDictionary[resourceId][field] == ResourceFields.InputType.Option ?
                                                                                                                                                                      OptionForAlias.Data[field.Split('.')[1]] :
                                                                                                                                                                      ResourceFields.ValueDictionary[ResourceFields.FieldsDictionary[resourceId][field]]))).Result);

            PrAssert.That(response, PrIs.SuccessfulResponse());
            PrAssert.That(response.Result, PrIs.Not.Null);
            PrAssert.That(response.Result.Ids[0][0], PrIs.Not.Null);
        }
        public void UpdateMissingRequiredFieldRecordWithTest(TestCoreFramework.Enums.ResourceType resourceId, string field)
        {
            var fieldHandler = new FieldManager();
            var fields       = fieldHandler.GetFieldGuid(ResourceFields.RequireFields[resourceId].Where(s => s != field), new[] { resourceId })
                               .Result.Result.ToDictionary(x => $"{char.ToUpper(x.Resource[0]) + x.Resource.Substring(1)}.{x.Alias}", x => (int)UuidUtil.GetId(x.Id));
            var parameters = new Dictionary <int, object>();

            foreach (var item in ResourceFields.RequireFields[resourceId].Where(s => s != field))
            {
                parameters.Add(fields[$"{resourceId.ToResourceName()}.{field}"], ResourceFields.ValueDictionary[ResourceFields.FieldsDictionary[resourceId][$"{resourceId.ToResourceName()}.{field}"]]);
            }
            var recordHandler = new RecordManager();
            var response      = recordHandler.UpdateRecords(
                RecordRequestComposer.ComposeUpdateRequest().Append(item => item.ForResource(resourceId)
                                                                    .Append(x => x.WithId((int)RecordsCreator.Data[resourceId.ToPrivateApiResource()].Id).AppendFields(parameters))).Result);

            PrAssert.That(response, PrIs.ErrorResponse());
        }
        public void InsertValidRecordWithOptionFieldsTest(TestCoreFramework.Enums.ResourceType resourceId, string field)
        {
            var fieldHandler = new FieldManager();
            var fields       = fieldHandler.GetFieldGuid(ResourceFields.RequireFields[resourceId].Append(field.Split('.')[1]), new[] { resourceId })
                               .Result.Result.ToDictionary(x => $"{char.ToUpper(x.Resource[0]) + x.Resource.Substring(1)}.{x.Alias}", x => (int)UuidUtil.GetId(x.Id));

            var recordHandler = new RecordManager();
            var request       = RecordRequestComposer.ComposeCreateRequest()
                                .Append(resourceId, CreateResourceOptionalFieldData(fields, resourceId, 1, ResourceFields.ValidPhase.Root, ResourceFields.ValidDateTime.Now, field))
                                .Result;

            var response = recordHandler.WriteRecords(request);

            PrAssert.That(response, PrIs.SuccessfulResponse());
            PrAssert.That(response.Result, PrIs.Not.Null);
            PrAssert.That(response.Result.Ids[0][0], PrIs.Not.Null);
            cleaner.Delete(resourceId.ToPrivateApiResource(), response.Result.Ids[0][0].ToString());
        }
        public void UpdateValidRecordWithOwnerTest(TestCoreFramework.Enums.ResourceType resourceId, ResourceFields.ValidPhase phase, ResourceFields.ValidDateTime time)
        {
            var fieldHandler = new FieldManager();
            var fields       = fieldHandler.GetFieldGuid(new List <string>()
            {
                "P_Phase", "P_PhaseDate"
            }, new[] { resourceId })
                               .Result.Result.ToDictionary(x => $"{char.ToUpper(x.Resource[0]) + x.Resource.Substring(1)}.{x.Alias}", x => (int)UuidUtil.GetId(x.Id));
            var recordHandler = new RecordManager();
            var response      = recordHandler.UpdateRecords(
                RecordRequestComposer.ComposeUpdateRequest().Append(item => item.ForResource(resourceId)
                                                                    .Append(x => x.WithId((int)RecordsCreator.Data[resourceId.ToPrivateApiResource()].Id)
                                                                            .AppendFields(new Dictionary <int, object> {
                [fields[$"{resourceId.ToResourceName()}.P_Phase"]] = RootPhaseOption.Data[resourceId], [fields[$"{resourceId.ToResourceName()}.P_PhaseDate"]] = ResourceFields.PhaseTimeMapper[time]
            }))).Result);

            PrAssert.That(response, PrIs.SuccessfulResponse());
            PrAssert.That(response.Result, PrIs.Not.Null);
            PrAssert.That(response.Result.Ids[0][0], PrIs.Not.Null);
        }
        public void DeletedIds(TestCoreFramework.Enums.ResourceType resourceId)
        {
            var baseId         = DeletedRecord.Data[resourceId.ToPrivateApiResource()].Ids[0][0];
            var mergeId        = DeletedRecord.Data[resourceId.ToPrivateApiResource()].Ids[1][0];
            var clientId       = DeletedRecord.Data[ResourceId.Client].Ids[0][0];
            var requestContent = new Dictionary <string, object>()
            {
                ["baseId"]   = baseId,
                ["mergedId"] = new List <int>()
                {
                    mergeId
                },
                ["mapping"] = Common.GetMapping(resourceId.ToPrivateApiResource(), (ulong)baseId, (ulong)clientId),
            };
            MergeManager mergeHandler = new MergeManager();
            var          response     = mergeHandler.MergeRecords <MergeResponse>(resourceId.ToPrivateApiResource(), requestContent, System.Net.Http.HttpMethod.Post);

            PrAssert.That(response, PrIs.ErrorResponse().With.HttpCode((int)HttpStatusCode.BadRequest));
            PrAssert.That(response.Errors.Code, PrIs.EqualTo((int)ResultCode.InvalidParameter));
            PrAssert.That(response.Errors.Error, PrIs.EqualTo("Invalid Parameter."));
        }
Example #15
0
        public PrivateApiResponse <Dictionary <string, Guid> > CreateSection(TestCoreFramework.Enums.ResourceType resource, string name = "TestSection", int columnsCount = 1, int rowsCount = 0)
        {
            var request = new CreateSectionRequest
            {
                TargetResourceId   = (int)resource,
                SectionDescription = new CreateSectionRequest.SectionItem
                {
                    ColumnsCount = columnsCount,
                    RowsCount    = rowsCount,
                    Title        = new Dictionary <string, string>
                    {
                        ["ja"] = name
                    }
                }
            };
            var requestContent = ConvertToJsonString(request);

            using (LogHelper.LoggerForCurrentTest.EnterReproStep($"Creating a new section \"{name}\" in resource {resource}"))
            {
                return(ProcessResponseWithContent <Dictionary <string, Guid> >(Connection.SendAsync(FieldLayoutApiRelativeUrl, requestContent, HttpMethod.Post).Result));
            }
        }
Example #16
0
 public static Guid GetUiLayerId(TestCoreFramework.Enums.ResourceType resource, string partition = null)
 {
     return(UuidUtil.BuildPortersGuid(IdType.FieldLayout, 1, Convert.ToUInt32(partition ?? TestCoreFramework.AuthenticationInfoProvider.Current.DefaultPartition), MailLayerIds[resource]));
 }
        private Dictionary <int, object> CreateResourceOptionalFieldData(Dictionary <string, int> fields, TestCoreFramework.Enums.ResourceType resourceId, int ownerId, ResourceFields.ValidPhase phase, ResourceFields.ValidDateTime time, string optionField)
        {
            var result = CreateResourceRequiredFieldData(fields, resourceId, ownerId, phase, time);

            result.Add(fields[$"{optionField}"],
                       ResourceFields.FieldsDictionary[resourceId][optionField] == ResourceFields.InputType.Option ?
                       OptionForAlias.Data[optionField.Split('.')[1]] :
                       ResourceFields.ValueDictionary[ResourceFields.FieldsDictionary[resourceId][optionField]]);
            return(result);
        }
        private Dictionary <int, object> CreateResourceUserFieldData(Dictionary <string, int> fields, TestCoreFramework.Enums.ResourceType resourceId, int ownerId, ResourceFields.ValidPhase phase, ResourceFields.ValidDateTime time, string optionField)
        {
            var result = CreateResourceRequiredFieldData(fields, resourceId, ownerId, phase, time);

            result.Add(fields[$"{optionField}"], "This is text line");
            return(result);
        }
        private Dictionary <int, object> CreateResourceRequiredFieldData(Dictionary <string, int> fields, TestCoreFramework.Enums.ResourceType resourceId, int ownerId, ResourceFields.ValidPhase phase, ResourceFields.ValidDateTime time)
        {
            var result = new Dictionary <int, object>();

            foreach (var fieldName in ResourceFields.RequireFields[resourceId])
            {
                result.Add(fields[$"{resourceId.ToResourceName()}.{fieldName}"], ResourceFields.DefaultValue[fieldName](resourceId, ownerId, resourceId != TestCoreFramework.Enums.ResourceType.Contract ? RootPhaseOption.Data[resourceId] : 0, ResourceFields.PhaseTimeMapper[time], RecordsCreator));
            }
            return(result);
        }
Example #20
0
        public static string GetFieldUuId(string alias, TestCoreFramework.Enums.ResourceType resource)
        {
            var fieldMng = new FieldManager();

            return(fieldMng.GetFieldGuid(new[] { alias }, new[] { resource }).Result.Result.FirstOrDefault().Id.ToString());
        }
Example #21
0
 public static ResourceId ToPrivateApiResource(this TestCoreFramework.Enums.ResourceType resource)
 {
     return((ResourceId)(int)resource);
 }
Example #22
0
 public PrivateApiResponse <GetLayoutResponse> GetUnusedFieldsSectionDetails(TestCoreFramework.Enums.ResourceType resource)
 {
     return(GetSectionDetails(GetUnusedSectionId(resource)));
 }