Example #1
0
        public async Task LoadRefObjects()
        {
            IDataModel dm = await _dbContext.LoadModelAsync(null, "a2test.RefObjects");

            var md = new MetadataTester(dm);

            md.IsAllKeys("TRoot,TDocument,TAgent");
            md.IsItemType("TRoot", "Document", FieldType.Object);

            md.IsId("TDocument", "Id");
            md.IsItemType("TDocument", "Agent", FieldType.Object);
            md.IsItemType("TDocument", "Company", FieldType.Object);
            md.IsItemRefObject("TDocument", "Agent", "TAgent", FieldType.Object);
            md.IsItemRefObject("TDocument", "Company", "TAgent", FieldType.Object);

            md.IsId("TAgent", "Id");
            md.IsName("TAgent", null);
            md.IsType("TAgent", "Id", DataType.Number);
            md.IsType("TAgent", "Name", DataType.String);
            md.IsItemType("TAgent", "Id", FieldType.Scalar);
            md.IsItemType("TAgent", "Name", FieldType.Scalar);

            var dt = new DataTester(dm, "Document");

            dt.AreValueEqual(200, "Id");

            dt = new DataTester(dm, "Document.Agent");
            dt.AreValueEqual(300, "Id");
            dt.AreValueEqual("Agent Name", "Name");

            dt = new DataTester(dm, "Document.Company");
            dt.AreValueEqual(500, "Id");
            dt.AreValueEqual("Company Name", "Name");
        }
        public async Task LocalizeComplexObjects()
        {
            IDataModel dm = await _dbContext.LoadModelAsync(null, "a2test.[ComplexObject.Localization.Load]");

            var md = new MetadataTester(dm);

            md.IsAllKeys("TRoot,TDocument,TAgent");
            md.IsItemType("TRoot", "Document", FieldType.Object);

            md.IsId("TDocument", "Id");
            md.IsType("TDocument", "Id", DataType.Number);
            md.IsItemType("TDocument", "Agent", FieldType.Object);

            var dt = new DataTester(dm, "Document");

            dt.AreValueEqual(200, "Id");

            dt = new DataTester(dm, "Document.Agent");
            dt.AreValueEqual(300, "Id");
            dt.AreValueEqual("Item 2", "Name");
        }
Example #3
0
        public async Task LoadDocument2()
        {
            ExpandoObject prms = new ExpandoObject
            {
                { "UserId", 100 }
            };
            Int64 docId = 10;

            prms.Add("Id", docId);
            IDataModel dm = await _dbContext.LoadModelAsync(null, "a2test.[Document2.Load]", prms);

            var md = new MetadataTester(dm);

            md.IsAllKeys("TRoot,TDocument,TRow,TPriceList,TPriceKind,TPrice,TEntity");
            md.HasAllProperties("TRoot", "Document,PriceLists,PriceKinds");
            md.HasAllProperties("TDocument", "Id,Rows,PriceKind");
            md.HasAllProperties("TPriceList", "Id,Name,PriceKinds");
            md.HasAllProperties("TPriceKind", "Id,Name,Main");
            md.HasAllProperties("TPrice", "Price,PriceKind");
            md.HasAllProperties("TRow", "Id,Entity");
            md.HasAllProperties("TEntity", "Id,Name,Prices");

            md.IsItemType("TDocument", "Rows", FieldType.Array);
            md.IsId("TDocument", "Id");

            md.IsItemType("TRow", "Entity", FieldType.Object);
            md.IsId("TRow", "Id");

            md.IsId("TPriceList", "Id");
            md.IsId("TPriceKind", "Id");

            md.IsItemType("TEntity", "Prices", FieldType.Array);

            // data
            var dt = new DataTester(dm, "Document");

            dt.AreValueEqual(docId, "Id");

            dt = new DataTester(dm, "Document.PriceKind");
            dt.AreValueEqual(4294967306L, "Id");

            dt = new DataTester(dm, "Document.Rows");
            dt.IsArray(1);
            dt.AreArrayValueEqual(59, 0, "Id");

            dt = new DataTester(dm, "Document.Rows[0].Entity.Prices");
            dt.IsArray(3);
            dt.AreArrayValueEqual(185.7M, 0, "Price");
            dt.AreArrayValueEqual(179.4M, 1, "Price");
            dt.AreArrayValueEqual(172.44M, 2, "Price");

            dt = new DataTester(dm, "Document.Rows[0].Entity.Prices[0].PriceKind");
            dt.AreValueEqual(4294967305L, "Id");
            dt.AreValueEqual("Kind 1", "Name");

            dt = new DataTester(dm, "Document.Rows[0].Entity.Prices[1].PriceKind");
            dt.AreValueEqual(4294967304L, "Id");
            dt.AreValueEqual("Kind 2", "Name");

            dt = new DataTester(dm, "Document.Rows[0].Entity.Prices[2].PriceKind");
            dt.AreValueEqual(4294967306L, "Id");
            dt.AreValueEqual("Kind 3", "Name");

            dt = new DataTester(dm, "PriceLists");
            dt.IsArray(2);
            dt.AreArrayValueEqual(4294967300L, 0, "Id");
            dt.AreArrayValueEqual(4294967304L, 1, "Id");

            dt = new DataTester(dm, "PriceKinds");
            dt.IsArray(4);
            dt.AreArrayValueEqual(4294967305L, 0, "Id");
            dt.AreArrayValueEqual(4294967304L, 1, "Id");
            dt.AreArrayValueEqual(4294967306L, 2, "Id");
            dt.AreArrayValueEqual(4294967303L, 3, "Id");
        }
Example #4
0
        public async Task LoadDocument()
        {
            Int64         docId = 10;
            ExpandoObject prms  = new ExpandoObject
            {
                { "UserId", 100 },
                { "Id", docId }
            };
            IDataModel dm = await _dbContext.LoadModelAsync(null, "a2test.[Document.Load]", prms);

            var md = new MetadataTester(dm);

            md.IsAllKeys("TRoot,TDocument,TAgent,TRow,TPriceList,TPriceKind,TPrice,TEntity");
            md.HasAllProperties("TRoot", "Document,PriceLists,PriceKinds");
            md.HasAllProperties("TDocument", "Id,Agent,Company,PriceList,PriceKind,Rows");
            md.HasAllProperties("TPriceList", "Id,Name,PriceKinds");
            md.HasAllProperties("TPriceKind", "Id,Name,Prices");
            md.HasAllProperties("TPrice", "Id,Price,PriceKind");
            md.HasAllProperties("TRow", "Id,PriceKind,Entity");
            md.HasAllProperties("TEntity", "Id,Name,Prices");

            md.IsItemType("TDocument", "Rows", FieldType.Array);
            md.IsId("TDocument", "Id");

            md.IsItemType("TRow", "PriceKind", FieldType.Object);
            md.IsItemType("TRow", "Entity", FieldType.Object);
            md.IsId("TRow", "Id");

            md.IsId("TPriceList", "Id");
            md.IsId("TPriceKind", "Id");

            md.IsItemType("TEntity", "Prices", FieldType.Array);

            // data
            var dt = new DataTester(dm, "Document");

            dt.AreValueEqual(docId, "Id");


            dt = new DataTester(dm, "Document.PriceKind.Prices");
            dt.IsArray(2);
            dt.AreArrayValueEqual(22.5M, 0, "Price");
            dt.AreArrayValueEqual(36.8M, 1, "Price");

            dt = new DataTester(dm, "Document.Rows");
            dt.IsArray(1);
            dt.AreArrayValueEqual(59, 0, "Id");

            dt = new DataTester(dm, "Document.Rows[0].PriceKind");
            dt.AreValueEqual(7, "Id");

            dt = new DataTester(dm, "Document.Rows[0].PriceKind.Prices");
            dt.IsArray(2);
            dt.AreArrayValueEqual(22.5M, 0, "Price");
            dt.AreArrayValueEqual(36.8M, 1, "Price");

            dt = new DataTester(dm, "Document.Rows[0].Entity.Prices");
            dt.IsArray(2);
            dt.AreArrayValueEqual(22.5M, 0, "Price");
            dt.AreArrayValueEqual(36.8M, 1, "Price");

            dt = new DataTester(dm, "Document.Rows[0].Entity.Prices[0].PriceKind");
            dt.AreValueEqual(8, "Id");

            dt = new DataTester(dm, "PriceLists");
            dt.IsArray(1);
            dt.AreArrayValueEqual(1, 0, "Id");

            dt = new DataTester(dm, "PriceKinds");
            dt.IsArray(2);
            dt.AreArrayValueEqual(7, 0, "Id");
            dt.AreArrayValueEqual(8, 1, "Id");
        }