public void BatchRequest()
        {
            string query =
                @"{
                ""queries"": [
                    ""name,description"",
                    ""core:firstName,core:lastName"",
                    ""some invalid query""
                ],
                ""requests"": [
                    {
                        ""aliases"":[""test:person""],
                        ""rq"":0,
                        ""get"":""instances""
                    },
                    {
                        ""aliases"":[""test:peterAylett""],
                        ""rq"":1,
                        ""get"":""basic""
                    },
                    {
                        ""ids"":[1],
                        ""rq"":2,
                        ""get"":""basic""
                    },
                    {
                        ""aliases"":[""invalid:alias""],
                        ""rq"":0,
                        ""get"":""basic""
                    }
                ]
            }";

            using (var request = new PlatformHttpRequest(@"data/v2/entity", PlatformHttpMethod.Post))
            {
                request.PopulateBodyString(query);

                var response = request.GetResponse();

                // check that it worked (200)
                Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);

                // Check response body
                JsonQueryResult res = request.DeserialiseResponseBody <JsonQueryResult>();
                Assert.IsNotNull(res);

                Assert.AreEqual(4, res.Results.Count, "res.Results.Count");
                Assert.AreEqual(HttpStatusCode.OK, res.Results[0].Code, "res.Results[0].Code");
                Assert.AreEqual(HttpStatusCode.OK, res.Results[1].Code, "res.Results[1].Code");
                Assert.AreEqual(HttpStatusCode.BadRequest, res.Results[2].Code, "res.Results[2].Code");
                Assert.AreEqual(HttpStatusCode.NotFound, res.Results[3].Code, "res.Results[3].Code");
                Assert.Greater(res.Results[0].Ids.Count, 1, "res.Results[0].IDs.Count");
                Assert.AreEqual(1, res.Results[1].Ids.Count, "res.Results[1].IDs.Count");
            }
        }
Example #2
0
        public void ToolboxObjects( )
        {
            // Request all definitions and enum types
            string rq    = "name, inSolution.id,{ definitionUsedByReport, definitionUsedByReport.reportCharts, k:formsToEditType, k:defaultEditForm }.{name, inSolution.id}";
            string query = @"{'queries':['" + rq + @"'],'requests':[{'get':'instances','aliases':['core:definition'],'hint':'toolboxObjects-instOf-definition','rq':0}]}";

            query = query.Replace("'", "\"");
            JsonQueryResult res = TestEntity.RunBatchTest(query, HttpStatusCode.OK, 1);

            Assert.That(res, Is.Not.Null);
        }
Example #3
0
        public void RunReportBuilderEntityRequest_WithVariables()
        {
            if (_reportId == 0)
            {
                _reportId = EDC.ReadiNow.Expressions.CodeNameResolver.GetInstance(_reportName, "Report").Id;
            }

            // Request all definitions and enum types
            string id    = _reportId.ToString();
            string rq    = @"let @REPORTEXPRESULTTYPE = {
       name,alias,
       isOfType.{name,alias},
       numberDecimalPlaces,
       conformsToType.{name,isOfType.{name,alias}},
       resourceArgumentValue.{name,alias},
       resourceListParameterValues.{name,alias},
       stringParameterValue, intParameterValue, decimalParameterValue, boolParameterValue, dateTimeParameterValue, timeParameterValue, dateParameterValue
    }
let @EXPR = {isOfType.{name,alias},reportExpressionResultType.@REPORTEXPRESULTTYPE,sourceNode.id,fieldExpressionField.{name,alias},reportScript,expressionReferencesColumn.id,aggregateMethod.alias,aggregatedExpression*.{
    isOfType.alias,
    reportExpressionResultType.@REPORTEXPRESULTTYPE,
    sourceNode.id,
    fieldExpressionField.id,
    reportScript,
    expressionReferencesColumn.id,
    aggregateMethod.{id,name,alias,isOfType.{name,alias}}}}
let @CONDITION = {name,isOfType.{name,alias},conditionDisplayOrder,conditionIsHidden,conditionIsLocked,conditionExpression.@EXPR,
    operator.{isOfType.alias,alias},
    columnForCondition.{name,alias},
    conditionParameter.{isOfType.{name,alias},
    paramTypeAndDefault.@REPORTEXPRESULTTYPE}}

{name,description, alias, isOfType.{name,alias}, hideActionBar, hideReportHeader , rollupSubTotals,rollupGrandTotals, rollupRowCounts, rollupRowLabels, rollupOptionLabels, {rootNode,rootNode.relatedReportNodes*,rootNode.groupedNode*}.{name,isOfType.{name,alias},exactType,targetMustExist,targetNeedNotExist,resourceReportNodeType.{name,isOfType.{name,alias}},followInReverse,followRecursive,includeSelfInRecursive,constrainParent,checkExistenceOnly,followRelationship.{name, cardinality.alias, fromName, toName,{fromType, toType}.{name,alias,inherits.alias}},groupedBy.@EXPR}, reportColumns.{name,isOfType.{name,alias},columnDisplayOrder,columnIsHidden,columnExpression.@EXPR , columnFormattingRule.{isOfType.{name,alias},barColor,{barMinValue, barMaxValue}.{ intParameterValue, decimalParameterValue, dateTimeParameterValue, timeParameterValue, dateParameterValue },iconRules.iconRuleImage.{isOfType.{name,alias},name},colorRules.{isOfType.{name,alias},colorRuleForeground,colorRuleBackground},{iconRules, colorRules}.{isOfType.{name,alias},rulePriority,ruleCondition.@CONDITION}}, columnDisplayFormat.{isOfType.{name,alias},columnShowText, disableDefaultFormat, formatImageScale.alias,dateColumnFormat.alias,timeColumnFormat.alias,dateTimeColumnFormat.alias,formatAlignment.{name,alias, isOfType.{name,alias}},formatDecimalPlaces,formatPrefix,formatSuffix,maxLineCount,formatAlignment.alias,formatImageSize.alias}, columnGrouping.{isOfType.{name,alias},groupingPriority,groupingMethod.{name,alias}}, columnRollup.{isOfType.{name,alias},rollupMethod.{name,alias}}} , reportOrderBys.{isOfType.{name,alias},reverseOrder,orderPriority,orderByExpression.@EXPR }, hasConditions.@CONDITION, k:resourceInFolder.{name, isOfType.{name,alias}} , reportUsesDefinition.{name, isOfType.{name,alias}}, isDefaultDisplayReportForTypes.{name, isOfType.{name,alias}}, isDefaultPickerReportForTypes.{name, isOfType.{name,alias}}, k:navigationElementIcon.{name, isOfType.{name,alias}},hideOnDesktop,hideOnTablet,hideOnMobile, inSolution.{name, isOfType.{name,alias}} , reportStyle.{name, isOfType.{name,alias}} , let @ACTIONHOST = { k:resourceConsoleBehavior, k:selectionBehavior }.k:behaviorActionMenu.{
    k:showNewActionsButton, k:showExportActionsButton, k:showEditInlineActionsButton,
   { k:menuItems, k:suppressedActions, k:includeActionsAsButtons }.{
       { name,
         k:menuIconUrl,
         k:isActionButton,
         k:isMenuSeparator,
         { k:actionMenuItemToWorkflow }.{ name },
         { k:actionMenuItemToReportTemplate }.{ name }
       }
    },
    { k:includeTypesForNewButtons, k:suppressedTypesForNewMenu }.id } , resourceViewerConsoleForm.{name, alias, description, isOfType.{name,alias}}}";
            string query = @"{'queries':['" + rq + @"'],'requests':[{'get':'basic','ids':[" + id + "],'hint':'unit test','rq':0}]}";

            query = query.Replace("'", "\"");
            JsonQueryResult res = TestEntity.RunBatchTest(query, HttpStatusCode.OK, 1);

            Assert.That(res, Is.Not.Null);
        }
Example #4
0
        public static JsonQueryResult RunRequest(string query, HttpStatusCode expected = HttpStatusCode.OK)
        {
            using (var request = new PlatformHttpRequest(@"data/v2/entity", PlatformHttpMethod.Post))
            {
                request.PopulateBodyString(query);

                var response = request.GetResponse( );

                // check that it worked (200)
                Assert.That(response.StatusCode, Is.EqualTo(expected));

                // Check response body
                JsonQueryResult res = request.DeserialiseResponseBody <JsonQueryResult>( );
                Assert.IsNotNull(res);

                return(res);
            }
        }
Example #5
0
        public static JsonQueryResult RunBatchTest(string query, HttpStatusCode expectedResult = HttpStatusCode.OK, int resultCount = 1)
        {
            using (var request = new PlatformHttpRequest(@"data/v2/entity", PlatformHttpMethod.Post))
            {
                request.PopulateBodyString(query);

                var response = request.GetResponse();

                // check that it worked (200)
                Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);

                // Check response body
                JsonQueryResult res = request.DeserialiseResponseBody <JsonQueryResult>();
                Assert.IsNotNull(res);

                Assert.AreEqual(resultCount, res.Results.Count, "res.Results.Count");
                Assert.AreEqual(expectedResult, res.Results[0].Code, "res.Results[0].Code");

                return(res);
            }
        }
        public void CacheInvalidation_Bug21102_TypeOnly()
        {
            // Request all definitions and enum types
            string          query  = @"{""queries"":[""instancesOfType.name""], ""requests"":[{""get"":""basic"", ""aliases"":[""core:definition""], ""hint"":""CacheInvalidation_Bug21102"", ""rq"":0}]}";
            JsonQueryResult res    = TestEntity.RunBatchTest(query, HttpStatusCode.OK, 1);
            int             count1 = res.Entities.Count;

            Assert.IsTrue(count1 > 1);


            // Create definition
            string defnName   = "Test Defn " + Guid.NewGuid().ToString();
            string createBody = @"{
    ""ids"": [9007199254740925],
    ""entities"": [
        {
            ""id"": 3121, ""typeIds"": [],
            ""fields"": [], ""relationships"": [],
            ""dataState"": ""Update""
        }, {
			""id"": 9007199254740925,
			""typeIds"": [2436],
			""fields"": [{
				""fieldId"": 2397, ""typeName"": ""String"", ""svalue"": """                 + defnName + @"""
			}],
			""relationships"": [{
				""relTypeId"": { ""id"": 2873, ""ns"": ""core"", ""alias"": ""inherits"" },
				""instances"": [{ ""entity"": 3121, ""relEntity"": 0, ""dataState"": ""Create"" }]
			}],
			""dataState"": ""Create""
        }
    ],
    ""entityRefs"": [
        { ""id"": 9007199254740925 },
        { ""id"": 3121, ""ns"": ""core"", ""alias"": ""userResource"" },
        { ""id"": 2397, ""ns"": ""core"", ""alias"": ""name"" },
        { ""id"": 2873, ""ns"": ""core"", ""alias"": ""inherits"" },
        { ""id"": 2436, ""ns"": ""core"", ""alias"": ""definition"" }
    ]
}";

            createBody = createBody.Replace("3121", Entity.GetId("core:userResource").ToString());
            createBody = createBody.Replace("2397", Entity.GetId("core:name").ToString());
            createBody = createBody.Replace("2873", Entity.GetId("core:inherits").ToString());
            createBody = createBody.Replace("2436", Entity.GetId("core:definition").ToString());

            using (var request = new PlatformHttpRequest(@"data/v1/entity", PlatformHttpMethod.Post))
            {
                request.PopulateBodyString(createBody);

                var response = request.GetResponse();

                // check that it worked (200)
                Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
            }

            // Request all definitions again
            res = TestEntity.RunBatchTest(query, HttpStatusCode.OK, 1);
            int count2 = res.Entities.Count;

            Assert.AreEqual(count1 + 1, count2, "Look for definition");
        }
 private long ReturnedFormId(JsonQueryResult result)
 {
     return(result.Results.First( ).Ids.First( ));
 }