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"); }
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"); }
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"); }