Ejemplo n.º 1
0
        public void SelfServeReportGrant( )
        {
            IAccessRuleFactory       accessRuleFactory;
            IAccessRuleReportFactory accessRuleReportFactory;
            Subject  selfServeRole;
            Solution coreDataSolution;

            accessRuleReportFactory = new AccessRuleDisplayReportFactory( );
            accessRuleFactory       = new AccessRuleFactory( );
            using (DatabaseContext databaseContext = DatabaseContext.GetContext(true))
                using (new SecurityBypassContext( ))
                {
                    selfServeRole    = Entity.Get <Subject>("core:selfServeRole", true);
                    coreDataSolution = CodeNameResolver.GetInstance("ReadiNow Core Data", "Application").As <Solution>( );

                    // Allow the test to be rerun by re-enabling the allow all Administrators access rule
                    //EnableAdministratorAccessAllRule( );

                    // Create access rules
                    //DeleteAccessRules( ReportTypeNames, SelfServeCreateAccessRuleNameTemplate );
                    CreateAccessRules(
                        accessRuleFactory,
                        accessRuleReportFactory,
                        selfServeRole,
                        SelfServeTypeNames,
                        new [] { Permissions.Create },
                        "core:createSelfServeComponentsAccessRule",
                        coreDataSolution);

                    // Disable the "allow all" administrator access rule
                    //DisableAdministratorAccessAllRule( );

                    databaseContext.CommitTransaction( );
                }
        }
Ejemplo n.º 2
0
        public void Test_Rollup_Report_On_EditForm()
        {
            using (new SecurityBypassContext())
            {
                var report         = CodeNameResolver.GetInstance("AA_All Fields Rollup", "Report");
                var typeId         = Factory.ScriptNameResolver.GetTypeByName("AA_Herb");
                var instance       = CodeNameResolver.GetInstance("Basil", "AA_Herb");
                var relationshipId = Factory.ScriptNameResolver.GetMemberOfType("AA_All Fields", typeId, MemberType.Relationship).MemberId;

                ReportSettings settings = new ReportSettings
                {
                    ReportRelationship = new ReportRelationshipSettings
                    {
                        EntityId       = instance.Id,
                        RelationshipId = relationshipId,
                        Direction      = ReportRelationshipSettings.ReportRelationshipDirection.Forward
                    },
                    RequireFullMetadata = true
                };

                var          reportInterface = new ReportingInterface();
                ReportResult result          = reportInterface.RunReport(report.Id, null);

                Assert.That(result, Is.Not.Null);
                Assert.That(result.GridData, Has.Count.GreaterThan(0));
                Assert.That(result.AggregateMetadata.Groups, Has.Count.EqualTo(2));
            }
        }
        public void TestNSWPopulation()
        {
            var ireport = CodeNameResolver.GetInstance("NSW Population", "Report");
            var report  = ireport.As <Report>();

            // Check report
            CheckResourceReport(report, "Population", 5);
            Assert.IsNotNull(report.RootNode.As <ResourceReportNode>());

            // Check columns
            var columns = report.ReportColumns.OrderBy(c => c.ColumnDisplayOrder).ToArray();

            CheckIdColumn(columns[0], report.RootNode.Id);
            CheckFieldColumn <DateArgument>(columns[1], "Month", "Month", report.RootNode);
            CheckFieldColumn <IntegerArgument>(columns[2], "Male", "Male", report.RootNode);
            CheckFieldColumn <IntegerArgument>(columns[3], "Female", "Female", report.RootNode);
            CheckScriptColumn <IntegerArgument>(columns[4], "Combined", "Male+Female", report.RootNode);

            // Check conditions
            var conds = report.HasConditions.OrderBy(c => c.ConditionDisplayOrder).ToArray();

            CheckCondition <StringArgument>(conds[0], "State");   // currently returning string field??
            CheckCondition <DateArgument>(conds[1], "Month");
            CheckCondition <IntegerArgument>(conds[2], "Male");
            CheckCondition <IntegerArgument>(conds[3], "Female");
            CheckCondition <IntegerArgument>(conds[4], "Calculation");   // "Calculation" is what's in the analyzer XML. No idea why it's showing "Combined" in SL instead??
            Assert.AreEqual("NSW",
                            conds[0].ConditionParameter.ParamTypeAndDefault.As <StringArgument>().StringParameterValue);
        }
Ejemplo n.º 4
0
        public void TestGetFormData()
        {
            var employeeType = CodeNameResolver.GetTypeByName("AA_Employee").As <EntityType>();
            var employeeForm = employeeType.DefaultEditForm;
            var employee     = Entity.GetInstancesOfType(employeeType).FirstOrDefault();

            using (var request = new PlatformHttpRequest(@"data/v1/form/data", PlatformHttpMethod.Post))
            {
                FormDataRequest formDataRequest = new FormDataRequest
                {
                    FormId   = employeeForm.Id.ToString(),
                    EntityId = employee.Id.ToString(),
                    Query    = "name, description"
                };

                request.PopulateBody(formDataRequest);

                HttpWebResponse response = request.GetResponse();

                var formDataResponse = request.DeserialiseResponseBody <FormDataResponse>();

                Assert.IsNotNull(formDataResponse);

                // check that it worked (200)
                Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.OK));
            }
        }
        public void GetResourceByReport( )
        {
            var personReport = CodeNameResolver.GetInstance("AA_Person", "Report");

            var getResources = new GetResourcesActivity( );

            getResources.Save( );
            //_toDelete.Add(getResources.Id);

            var getResourcesAs = getResources.As <WfActivity>( );

            ActivityImplementationBase nextActivity = getResourcesAs.CreateWindowsActivity( );

            var args = new Dictionary <string, object>
            {
                {
                    "Report", personReport
                },
            };

            IDictionary <string, object> result = RunActivity(nextActivity, args);

            var list  = result["List"] as IEnumerable <IEntity>;
            var first = result["First"];

            var personType = CodeNameResolver.GetTypeByName("AA_Person").As <EntityType>();

            long countPeople = personType.GetDescendantsAndSelf().SelectMany(t => t.InstancesOfType).Select(i => i.Id).Distinct().Count();

            Assert.IsNotNull(list);
            Assert.AreEqual(list.Count( ), countPeople, "The count of people is correct");
        }
Ejemplo n.º 6
0
        public void CreateActivityRun()
        {
            var personType = CodeNameResolver.GetTypeByName("AA_Person").As <EntityType>();

            const string createdRecordArgKey = "Record";

            var createActivity = new CreateActivity();

            createActivity.Save();
            ToDelete.Add(createActivity.Id);

            var nextActivity = (CreateImplementation)createActivity.As <WfActivity>().CreateWindowsActivity();

            var inputs = new Dictionary <string, object>
            {
                {
                    "Object", personType
                }
            };

            IDictionary <string, object> result = RunActivity(nextActivity, inputs);

            Assert.AreEqual(2, result.Count, "There are two results, and exit point + a value");

            Assert.IsTrue(result.ContainsKey(createdRecordArgKey));

            var resourceId = (IEntity)result[createdRecordArgKey];

            ToDelete.Add(resourceId.Id);

            var person = Entity.Get(resourceId.Id);

            Assert.IsNotNull(person, "We have a person");
        }
Ejemplo n.º 7
0
        public void LogEmployeesAge()
        {
            using (new WorkflowRunContext {
                RunTriggersInCurrentThread = true
            })
            {
                var wf = new Workflow()
                {
                    Name = "Log Employees Age " + DateTime.Now
                };

                wf.AddDefaultExitPoint();

                EntityType type = CodeNameResolver.GetTypeByName("AA_Employee").As <EntityType>();

                wf.AddVariable <ResourceListArgument>("list", "all(AA_Employee)", type)
                .AddForEach("foreach", "list", type)
                .AddLog("Log", "{{foreach_Record.Age}}", "foreach", "Loop")
                .AddTransition("Log", "foreach");

                wf.Save();

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

                var run = (RunWorkflow(wf, wfInput));

                Assert.AreEqual(WorkflowRunState_Enumeration.WorkflowRunCompleted, run.WorkflowRunStatus_Enum,
                                "The workflow completed sucessfully.");
            }
        }
Ejemplo n.º 8
0
        //[Ignore("This test is the same as the failing intg workflow tests '610' and '620' due to the enforcement of cardinality. The problem is that the assignment of a relationship is not clearing the old relationship if  the cardinality does not permit it.")]
        public void ReassignReportDuringManagerCreate()
        {
            var aaManager = CodeNameResolver.GetTypeByName("AA_Manager").As <EntityType>();
            var reportsTo = Entity.Get <Relationship>(new EntityRef("test:reportsTo"));

            var oldMgr = new Entity(aaManager);

            oldMgr.Save();
            ToDelete.Add(oldMgr.Id);

            var employee1 = CreateEmployee(oldMgr, reportsTo);
            var employee2 = CreateEmployee(oldMgr, reportsTo);

            var createActivity = new CreateActivity();

            createActivity.InputArguments.Add(new ResourceArgument {
                Name = "1"
            }.Cast <ActivityArgument>());
            createActivity.InputArguments.Add(new ResourceArgument {
                Name = "1_value_"
            }.Cast <ActivityArgument>());
            createActivity.InputArguments.Add(new BoolArgument {
                Name = "1_reverse"
            }.Cast <ActivityArgument>());
            createActivity.InputArguments.Add(new BoolArgument {
                Name = "1_replace"
            }.Cast <ActivityArgument>());

            createActivity.Save();
            ToDelete.Add(createActivity.Id);

            var nextActivity = (CreateImplementation)createActivity.As <WfActivity>().CreateWindowsActivity();


            var inputs = new Dictionary <string, object>
            {
                {
                    "Object", aaManager
                },
                {
                    "1_value_", new List <Entity>()
                    {
                        employee1, employee2
                    }
                },
                {
                    "1", reportsTo
                },
                {
                    "1_reverse", true
                },
                {
                    "1_replace", true
                }
            };


            RunActivity(nextActivity, inputs);
        }
        public void TestResultTypeOfGroupByColumn()
        {
            var ireport = CodeNameResolver.GetInstance("rpt_CHART_EmployeeManager", "Report");
            var report  = ireport.As <Report>();

            Assert.IsTrue(report.ReportColumns[0].ColumnExpression.ReportExpressionResultType.Is <ResourceArgument>());
            Assert.AreEqual("AA_Manager", report.ReportColumns[0].ColumnExpression.ReportExpressionResultType.As <ResourceArgument>().ConformsToType.Name);
            Assert.IsTrue(report.ReportColumns[1].ColumnExpression.ReportExpressionResultType.Is <IntegerArgument>());
        }
Ejemplo n.º 10
0
        public void A_ClearAll()
        {
            if (ReportId == 0)
            {
                ReportId = CodeNameResolver.GetInstance("Forms", "Report").Id;
            }

            TestHelpers.ClearServerCaches();
        }
Ejemplo n.º 11
0
        public void B_Clear_And_Warm()
        {
            if (ReportId == 0)
            {
                ReportId = CodeNameResolver.GetInstance("Forms", "Report").Id;
            }

            TestHelpers.ClearServerCaches();
            BulkPreloader.TenantWarmup();
        }
Ejemplo n.º 12
0
        public void ReportPreloadTest( )
        {
            if (_reportId == 0)
            {
                _reportId = CodeNameResolver.GetInstance("Student report", "Report").Id;
            }

            var rq = new EntityRequest(_reportId, ReportHelpers.ReportPreloaderQuery, "ReportPreloadTest");

            rq.IgnoreResultCache = true;
            BulkPreloader.Preload(rq);
        }
Ejemplo n.º 13
0
        public void Convert_AllFields()
        {
            IEntity entity = CodeNameResolver.GetInstance("AF_All Fields", "Report");
            var     report = entity.As <EDC.ReadiNow.Model.Report>();

            using (new SecurityBypassContext())
            {
                EventLog.Application.WriteTrace("Before convert report");
                var sq = ReportToQueryConverter.Instance.Convert(report);
                EventLog.Application.WriteTrace("After convert report");
            }
        }
Ejemplo n.º 14
0
 public void GrcScriptCutdown_Warmup( )
 {
     reportId        = CodeNameResolver.GetInstance("Business Units", "Report").Id;
     formId          = CodeNameResolver.GetInstance("Business Unit Form", "Custom Edit Form").Id;
     typeId          = CodeNameResolver.GetInstance("Business Unit", "Type").Id;
     tabReportId     = CodeNameResolver.GetInstance("Operational Impact List", "Report").Id;
     tabRelId        = CodeNameResolver.GetInstance("Business Function - Business Unit", "Relationship").Id;
     tabEntityTypeId = CodeNameResolver.GetInstance("Business Function", "Type").Id;
     listboxReportId = CodeNameResolver.GetInstance("Division Picker", "Report").Id;
     pickerTypeId    = CodeNameResolver.GetInstance("Employee", "Type").Id;
     pickerReportId  = CodeNameResolver.GetInstance("Employee Picker 2", "Report").Id;
 }
Ejemplo n.º 15
0
        public void Bug_25770_AssigningWithNull()
        {
            var aaManager = CodeNameResolver.GetTypeByName("AA_Manager").As <EntityType>();
            var reportsTo = Entity.Get <Relationship>(new EntityRef("test:reportsTo"));


            var createActivity = new CreateActivity();

            createActivity.InputArguments.Add(new ResourceArgument {
                Name = "1"
            }.Cast <ActivityArgument>());
            createActivity.InputArguments.Add(new ResourceArgument {
                Name = "1_value_"
            }.Cast <ActivityArgument>());
            createActivity.InputArguments.Add(new BoolArgument {
                Name = "1_reverse"
            }.Cast <ActivityArgument>());
            createActivity.InputArguments.Add(new BoolArgument {
                Name = "1_replace"
            }.Cast <ActivityArgument>());

            createActivity.Save();
            ToDelete.Add(createActivity.Id);

            var nextActivity = (CreateImplementation)createActivity.As <WfActivity>().CreateWindowsActivity();


            var inputs = new Dictionary <string, object>
            {
                {
                    "Object", aaManager
                },
                {
                    "1_value_", new List <Entity>()
                    {
                        null
                    }                                                   // NULL (This was a side effect of a problem in the expression engine)
                },
                {
                    "1", reportsTo
                },
                {
                    "1_reverse", true
                },
                {
                    "1_replace", true
                }
            };


            RunActivity(nextActivity, inputs);
        }
Ejemplo n.º 16
0
        private string GetNewBusinessUnitJson( )
        {
            string fields     = "";
            string rels       = "";
            string entityRefs = "";

            EntityType entityType = Entity.GetByName <EntityType>("Business Unit").Single( );

            Action <long> addEntityRef = (id) =>
            {
                entityRefs += ",\n{'id':" + id + ",'ns':null,'alias':null}";
            };
            Action <string, string, string> setField = (field, type, value) =>
            {
                long fieldId = Factory.ScriptNameResolver.GetMemberOfType(field, entityType.Id, MemberType.Field).MemberId;
                fields += ",\n{'fieldId':" + fieldId + ",'typeName':'" + type + "','value':'" + value + "'}";
                addEntityRef(fieldId);
            };
            Action <string, string, string> setLookup = (relationship, type, value) =>
            {
                long relId = Factory.ScriptNameResolver.GetMemberOfType(relationship, entityType.Id, MemberType.Relationship).MemberId;
                long entId = value == "%USER%" ? 99999999 : CodeNameResolver.GetInstance(value, type).Id;
                rels += ",\n{'relTypeId':{'id':" + relId + ",'ns':null,'alias':null},'instances':[{'entity':" + entId + ",'relEntity':0,'dataState':'create'}],'removeExisting':true,'autoCardinality':true}";
                addEntityRef(relId);
                addEntityRef(entId);
            };

            long instanceId = 9007199254740986;

            addEntityRef(entityType.Id);
            addEntityRef(instanceId);

            setField("Approval % Completed", "Decimal", "0");
            setField("Name", "String", "%NAME%");
            setField("Description", "Decimal", "TEST DESC");
            setField("Function Completed", "Bool", "true");
            setField("Approval Review Cycle", "Int32", "6");
            setLookup("Approval status", "Authorisation Status", "In Draft");
            setLookup("Owner", "Employee", "Peter Aylett");
            setLookup("Approval review period", "Period WMY", "months");
            setLookup("Owned by", "User Account", "%USER%");

            string statement = @"{'ids':[" + instanceId + @"],
                'entities':[{'id':" + instanceId + @",'typeIds':[" + entityType.Id + @"],
                'fields':[" + fields.Substring(1) + @"],
                'relationships':[" + rels.Substring(1) + @"],'dataState':'create'}],
                'entityRefs':[" + entityRefs.Substring(1) + @"]}";

            statement = statement.Replace("'", @"""");

            return(statement);
        }
Ejemplo n.º 17
0
        //private ExpressionNode RunSingleTest(string script, BuilderSettings settings = null)
        //{
        //    var result = ExpressionGrammar.ParseMacro(script);
        //    var root = CheckTerm(result.Root, Terms.Expression);

        //    StaticBuilder sb = new StaticBuilder();
        //    sb.Settings = settings ?? (new BuilderSettings());
        //    Expression tree = sb.CompileTree(root);

        //    return tree.Root;
        //}

        ///// <summary>
        ///// Validate that the node represents the expected parse-term.
        ///// </summary>
        //private ParseTreeNode CheckTerm(ParseTreeNode node, string expectedTerm)
        //{
        //    Assert.AreEqual(expectedTerm, node.Term.Name);
        //    return node;
        //}

        private BuilderSettings CreateBuilderSettings(string contextDefinitionName)
        {
            var definition = CodeNameResolver.GetInstance(contextDefinitionName, EntityType.EntityType_Type).Single();

            BuilderSettings settings = new BuilderSettings
            {
                RootContextType = new ExprType {
                    Type = DataType.Entity, EntityType = new EntityRef(definition.Id)
                }
            };

            return(settings);
        }
Ejemplo n.º 18
0
        public void AddMissingAccessRules()
        {
            IAccessRuleFactory       accessRuleFactory;
            IAccessRuleReportFactory accessRuleReportFactory;
            Subject  administratorsRole;
            Subject  everyoneRole;
            Solution coreDataSolution;

            accessRuleReportFactory = new AccessRuleDisplayReportFactory();
            accessRuleFactory       = new AccessRuleFactory();
            using (DatabaseContext databaseContext = DatabaseContext.GetContext(true))
                using (new SecurityBypassContext())
                {
                    administratorsRole = Entity.Get <Subject>("core:administratorRole", true);
                    everyoneRole       = Entity.Get <Subject>("core:everyoneRole", true);
                    coreDataSolution   = CodeNameResolver.GetInstance("ReadiNow Core Data", "Application").As <Solution>();

                    Console.WriteLine("Create access rule in solution {0}", coreDataSolution.Id);

                    CreateAccessRules(
                        accessRuleFactory,
                        accessRuleReportFactory,
                        administratorsRole,
                        new [] { "core:importConfig" },
                        new [] { Permissions.Create, Permissions.Read, Permissions.Modify, Permissions.Delete },
                        AdministratorsFullControlAccessRuleNameTemplate,
                        coreDataSolution);

                    CreateAccessRules(
                        accessRuleFactory,
                        accessRuleReportFactory,
                        administratorsRole,
                        new [] { "core:importRun" },
                        new [] { Permissions.Read, Permissions.Modify },
                        AdministratorsReadModifyAccessRuleNameTemplate,
                        coreDataSolution);

                    //var types = new[] { "core:board", "core:boardDimension" };
                    //DeleteAccessRules(types, EveryoneReadModifyControlAccessRuleNameTemplate);
                    //CreateAccessRules(
                    //    accessRuleFactory,
                    //    accessRuleReportFactory,
                    //    everyoneRole,
                    //    types,
                    //    new[] { Permissions.Create, Permissions.Read, Permissions.Modify },
                    //    EveryoneReadModifyControlAccessRuleNameTemplate,
                    //    coreDataSolution);

                    databaseContext.CommitTransaction();
                }
        }
Ejemplo n.º 19
0
        public void TestGetForm_ById( )
        {
            var employeeType = CodeNameResolver.GetTypeByName("AA_Employee").As <EntityType>( );
            var employeeForm = employeeType.DefaultEditForm;

            using (
                var request = new PlatformHttpRequest(string.Format(@"data/v1/form/{0}", employeeForm.Id)))
            {
                HttpWebResponse response = request.GetResponse( );

                // check that it worked (200)
                Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.OK));
            }
        }
Ejemplo n.º 20
0
        Entity CreateEmployee(Entity oldMgr, Relationship reportsTo)
        {
            var aaEmployee = CodeNameResolver.GetTypeByName("AA_Employee").As <EntityType>();

            var employee = new Entity(aaEmployee);

            employee.Save();
            var rel = employee.GetRelationships(reportsTo);

            rel.Add(oldMgr);
            employee.Save();
            ToDelete.Add(employee.Id);

            return(employee);
        }
Ejemplo n.º 21
0
        public void C_WithoutPreload()
        {
            if (ReportId == 0)
            {
                ReportId = CodeNameResolver.GetInstance("AF_All Fields", "Report").Id;
            }


            using (new SecurityBypassContext())
                using (Profiler.Measure("C_WithoutPreload"))
                {
                    var report = Entity.Get <Report>(ReportId);
                    var sq     = ReportToQueryConverter.Instance.Convert(report);
                }
        }
        public void UpdateField()
        {
            var employeeType = CodeNameResolver.GetTypeByName("AA_Person").As <EntityType>();
            var ageField     = employeeType.Fields.First(f => f.Name == "Age");
            var bob          = new Entity(employeeType);

            bob.Save();
            ToDelete.Add(bob.Id);

            var updateActivity = new UpdateFieldActivity();

            updateActivity.InputArguments.Add(new ResourceArgument {
                Name = "1"
            }.Cast <ActivityArgument>());
            updateActivity.InputArguments.Add(new IntegerArgument {
                Name = "1_value"
            }.Cast <ActivityArgument>());

            updateActivity.Save();
            ToDelete.Add(updateActivity.Id);

            var updateActionAs = updateActivity.As <WfActivity>();

            ActivityImplementationBase nextActivity = updateActionAs.CreateWindowsActivity();

            var args = new Dictionary <string, object>
            {
                {
                    "Record", bob
                },
                {
                    "1_value", 32
                },
                {
                    "1", (new EntityRef(ageField.Id)).Entity
                }
            };

            RunActivity(nextActivity, args);

            Entity.Get(bob);
            var age = (int?)bob.GetField(ageField);

            Assert.AreEqual(32, age);
        }
        public void TestANLSimpleChoiceCond()
        {
            var ireport = CodeNameResolver.GetInstance("ANL Simple Choice Cond", "Report");
            var report  = ireport.As <Report>();

            // Check report
            CheckResourceReport(report, "RPT_AllTypesChoice", 12);

            var rootNode   = report.RootNode.As <ResourceReportNode>();
            var choiceNode = rootNode.RelatedReportNodes.Single().As <RelationshipReportNode>();

            Assert.IsNotNull(choiceNode);
            Assert.IsFalse(choiceNode.FollowInReverse == true);

            // Check columns
            var columns = report.ReportColumns.OrderBy(c => c.ColumnDisplayOrder).ToArray();

            CheckIdColumn(columns[0], report.RootNode.Id);
            CheckFieldColumn <StringArgument>(columns[1], "Text Field", "Text Field", report.RootNode);
            CheckFieldColumn <StringArgument>(columns[2], "Multiline Text Field", "Multiline Text Field", report.RootNode);
            CheckFieldColumn <IntegerArgument>(columns[3], "Number Field", "Number Field", report.RootNode);
            CheckFieldColumn <IntegerArgument>(columns[4], "AutoNumber Field", "AutoNumber Field", report.RootNode);
            CheckFieldColumn <DecimalArgument>(columns[5], "Decimal Field", "Decimal Field", report.RootNode);
            CheckFieldColumn <CurrencyArgument>(columns[6], "Currency Field", "Currency Field", report.RootNode);
            CheckFieldColumn <DateTimeArgument>(columns[7], "Date and Time Field", "Date and Time Field", report.RootNode);
            CheckFieldColumn <DateArgument>(columns[8], "Date only Field", "Date only Field", report.RootNode);
            CheckFieldColumn <TimeArgument>(columns[9], "Time only Field", "Time only Field", report.RootNode);
            CheckFieldColumn <BoolArgument>(columns[10], "Yes/No Field", "Yes/No Field", report.RootNode);
            CheckResourceExprColumn(columns[11], "Choice Field", choiceNode.As <ReportNode>(), "RPT_Choice");

            // Check conditions
            var conds = report.HasConditions.OrderBy(c => c.ConditionDisplayOrder).ToArray();

            CheckCondition <ResourceListArgument>(conds[0], "Choice Field", "RPT_Choice");
            CheckCondition <BoolArgument>(conds[1], "Yes/No Field");
            CheckCondition <TimeArgument>(conds[2], "Time only Field");
            CheckCondition <DateArgument>(conds[3], "Date only Field");
            CheckCondition <DateTimeArgument>(conds[4], "Date and Time Field");
            CheckCondition <CurrencyArgument>(conds[5], "Currency Field");
            CheckCondition <DecimalArgument>(conds[6], "Decimal Field");
            CheckCondition <IntegerArgument>(conds[7], "AutoNumber Field");
            CheckCondition <StringArgument>(conds[8], "Multiline Text Field");
            CheckCondition <IntegerArgument>(conds[9], "Number Field");
            CheckCondition <StringArgument>(conds[10], "Text Field");
        }
        public string CreateQueryXml(string script, string rootType1)
        {
            EntityRef rootType;

            if (rootType1.StartsWith("name:"))
            {
                rootType = new EntityRef(CodeNameResolver.GetTypeByName(rootType1.Substring(5)));
            }
            else
            {
                rootType = (EntityRef)rootType1; // cast alias string
            }
            StructuredQuery query = CreateQuery(script, rootType);
            string          xml   = Serializer <StructuredQuery> .ToXml(query);

            string xml2 = CleanXml(xml);

            return(xml2);
        }
Ejemplo n.º 25
0
        public void TestReport_AA_Manager( )
        {
            long reportId = CodeNameResolver.GetInstance("AA_Manager", Report.Report_Type).Single().Id;

            ReportSettings settings = new ReportSettings( );

            settings.RequireFullMetadata          = true;
            settings.SupportPaging                = true;
            settings.PageSize                     = 200;
            settings.RefreshCachedResult          = true;
            settings.RefreshCachedSql             = true;
            settings.RefreshCachedStructuredQuery = true;

            var          reportInterface = new ReportingInterface( );
            ReportResult result          = reportInterface.RunReport(reportId, settings);

            Assert.That(result, Is.Not.Null);
            Assert.That(result.GridData, Has.Count.GreaterThan(0));
        }
Ejemplo n.º 26
0
        public void Reverse_Relationship_IsCached( )
        {
            // columnRollup is a reverse relationship.
            long reportId = CodeNameResolver.GetInstance("AA_Manager", Report.Report_Type).Single( ).Id;

            string query = @"
                isOfType.id,
                reportColumns.isOfType.id,
                reportColumns.columnRollup.isOfType.id";

            var rq = new EntityRequest(reportId, query);

            BulkPreloader.Preload(rq);

            using (CacheManager.ExpectCacheHits( ))
            {
                var report = EDC.ReadiNow.Model.Entity.Get <EDC.ReadiNow.Model.Report>(reportId);
                report.ReportColumns.Any(rc => rc.ColumnRollup.Any( ));
            }
        }
Ejemplo n.º 27
0
        private Workflow CreateTestWf()
        {
            var person   = CodeNameResolver.GetTypeByName("AA_Person").As <EntityType>();
            var ageField = person.Fields.First(f => f.Name == "Age");

            var wf = new Workflow
            {
                Name = "Test"
            };

            wf.AddDefaultExitPoint()
            .AddInput <ResourceArgument>("ResourceId")
            .AddUpdateField("Update Field", ageField.As <Resource>(), "ResourceId", "13");

            wf.InputArgumentForAction = wf.InputArguments.First();

            wf.Save();
            ToDelete.Add(wf.Id);
            return(wf);
        }
Ejemplo n.º 28
0
        public void TestGetForm_DoesNotReturnCalculations()
        {
            var calcTestType = CodeNameResolver.GetTypeByName("AA_Calculations").As <EntityType>();
            var calcTestForm = calcTestType.DefaultEditForm;

            using (
                var request = new PlatformHttpRequest(string.Format(@"data/v1/form/{0}", calcTestForm.Id)))
            {
                HttpWebResponse response = request.GetResponse();

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

                using (Stream stream = response.GetResponseStream())
                    using (TextReader reader = new StreamReader(stream))
                    {
                        string json = reader.ReadToEnd();
                        Assert.That(json, Contains.Substring("isCalculatedField"));
                        Assert.That(json, Is.Not.ContainsSubstring("fieldCalculation"));
                    }
            }
        }
Ejemplo n.º 29
0
        public void RunReportWithCpuLimit(int limit, bool expectedSets)
        {
            IEntity entity = CodeNameResolver.GetInstance("AF_All Fields", "Report");
            var     report = entity.As <EDC.ReadiNow.Model.Report>();

            var sq = ReportToQueryConverter.Instance.Convert(report);

            // Run query
            QuerySettings settings = new QuerySettings();

            settings.CpuLimitSeconds     = limit;
            settings.RefreshCachedSql    = true;
            settings.RefreshCachedResult = true;

            QueryResult result = Factory.QueryRunner.ExecuteQuery(sq, settings);

            bool foundSet   = result.Sql.Contains("set QUERY_GOVERNOR_COST_LIMIT 30");
            bool foundUnset = result.Sql.Contains("set QUERY_GOVERNOR_COST_LIMIT 0");

            Assert.That(foundSet, Is.EqualTo(expectedSets), "Found the setting of the limit");
            Assert.That(foundUnset, Is.EqualTo(expectedSets), "found the unsetting of the limit");
        }
Ejemplo n.º 30
0
        public void TestGetInstance_NoDefaultForm( )
        {
            EntityType myDef = null;

            try
            {
                var personType = CodeNameResolver.GetTypeByName("AA_Person").As <EntityType>( );
                myDef = new EntityType( );
                myDef.Inherits.Add(personType);
                myDef.Save( );

                IEntity myInst = Entity.Create(myDef.Id);
                myInst.Save( );

                using (
                    var request = new PlatformHttpRequest(string.Format(@"data/v1/instance/{0}", myInst.Id)))
                {
                    HttpWebResponse response = request.GetResponse( );

                    // check that it worked (200)
                    Assert.IsTrue(response.StatusCode == HttpStatusCode.OK);
                }
            }
            finally
            {
                try
                {
                    if (myDef != null)
                    {
                        myDef.Delete( );
                    }
                }
                catch (Exception exc)
                {
                    EventLog.Application.WriteError(exc.ToString( ));
                }
            }
        }